VCL元件如何在run time時出現可編輯的黑點 |
尚未結案
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
markov您好:
有點醜不知道合不合用
< class="code">
Form1->Canvas->Brush->Style=bsSolid;
Form1->Canvas->Brush->Color=clBlack;
TRect Point[6];
Point[0].top = Button1->Top-3; //[0]為左上角
Point[0].left = Button1->Left-3;
Point[0].Right = Button1->Left;
Point[0].Bottom = Button1->Top;
Form1->Canvas->FillRect(Point[0]) ; 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~>
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
markov您好:
引言: 那就是如果VCL元件是否已被選擇, 是否要在mousemove中polling所有顯示在畫面上的元件, 看看是否在被圈選的區域當中?您說的是不是像下面連結一樣的事情 http://delphi.ktop.com.tw/topic.php?topic_id=25078 希望沒有誤會您的意思 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> |
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
markov您好:
真是抱歉,誤會您的意思
<>< face="Verdana, Arial, Helvetica">引言:
如果當滑鼠圈選區域時,並沒有mousemove經過元件時,我要怎麼知道這個元件被圈選了!
不過我想您可以先掃描Form上所有元件記錄其座標(Top,Left)
void __fastcall TForm1::Button1Click(TObject *Sender) { for (int i=0;i<Form1->ComponentCount ;i ) { int Posi=((TControl *)FindComponent(Form1->Components[i]->Name))->Top; AnsiString VCLName = Form1->Components[i]->Name; Memo1->Lines->Add("元件" VCLName " 其Top為" IntToStr(Posi)); } }然後再記錄滑鼠點的起始與結束座標,再比對是否在這區域範圍內 應該就可以達到您要的目的了< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/12/16 16:03:55 |
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |