該如何消除TPoint的內容 |
答題得分者是:aftcast
|
yeeddt
初階會員 發表:18 回覆:28 積分:29 註冊:2008-11-10 發送簡訊給我 |
目前在練習寫模擬小畫家的程式。
製作多邊形的功能時,我利用TPoint來紀錄每一個點。 請問該如何初始化它的值呢? [code cpp] int md; TPoint p[100]; void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { p[md]=Point(X,Y); Image->Canvas->Polyline(p,md); md ; } void __fastcall TForm1::ImageDblClick(TObject *Sender) { md--; Image->Canvas->Polygon(p,md); } [/code] |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
建議使用vector來處理
[code cpp] #include #include "polygon.h" std::vector void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { vPoint.push_back(Point(X,Y)); Image->Canvas->Polyline(vPoint.begin(), vPoint.size()-1); } void __fastcall TForm1::ImageDblClick(TObject *Sender) { Image->Canvas->Polygon(vPoint.begin(), vPoint.size()-1); } [/code] 要清除vector可以用vPoint.clear(); 來處理,但不能直接放在doubleclick的事件,你試看看就知道,還是會連線,原因是…自己想想
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2008-11-27 16:58:27, 註解 無‧
|
yeeddt
初階會員 發表:18 回覆:28 積分:29 註冊:2008-11-10 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
正確! 小補充一下,doubleclick時,也等同有二次的mousedown且會先觸發。故二個事件處理函式前後都調用了!
===================引 用 yeeddt 文 章=================== 謝謝您熱心的解答。 放在doubleclick事件中會有同樣的結果,是因為判斷doubleclick事件的同時也會判斷成mousedown嗎? 不曉得這樣的想法正不正確,煩請指教。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
yeeddt
初階會員 發表:18 回覆:28 積分:29 註冊:2008-11-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |