全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2143
推到 Plurk!
推到 Facebook!

【BCB】如何將Form1上的不同元件,都賦予Form1的OnMouseMove事件?

答題得分者是:RaynorPao
Cooky Kid
初階會員


發表:5
回覆:68
積分:44
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-16 22:01:16 IP:210.58.xxx.xxx 未訂閱
請教各位大大: 如何將Form1上的不同元件,用迴圈(for/while)都賦予Form1的OnMouseMove事件?< > >< > 老實耕田的原始碼如下: < class="code"> StaticText1->OnMouseMove = FormMouseMove; ToolBar1->OnMouseMove = FormMouseMove; Button1->OnMouseMove = FormMouseMove; Button2->OnMouseMove = FormMouseMove; 迴圈代勞的更改碼如下↓
for(int i=0; i<Form1->ComponentCount; i  )
  {
  //該如何做?
  }
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-16 23:15:52 IP:61.221.xxx.xxx 未訂閱
引言: 請教各位大大: 如何將Form1上的不同元件,用迴圈(for/while)都賦予Form1的OnMouseMove事件?< > >< > 老實耕田的原始碼如下: < class="code"> StaticText1->OnMouseMove = FormMouseMove; ToolBar1->OnMouseMove = FormMouseMove; Button1->OnMouseMove = FormMouseMove; Button2->OnMouseMove = FormMouseMove; 迴圈代勞的更改碼如下↓
for(int i=0; i<Form1->ComponentCount; i  )
  {
  //該如何做?
  }
Cooky Kid 你好: 請參考以下的做法 < class="code"> long lI=0; //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Application->AppMessage; } //--------------------------------------------------------------------------- void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled) { if(Msg.message==WM_MOUSEMOVE) { Memo1->Lines->Add("Mouse Move - " IntToStr(lI )); } } 備註: 要先在 Unit1.h 中宣告
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
Cooky Kid
初階會員


發表:5
回覆:68
積分:44
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-16 23:55:52 IP:210.58.xxx.xxx 未訂閱
RaynorPao 大大, 多謝..多謝...... 攔截 > 因為前天網上看到了『移動滑鼠,取得 > 改過的碼如下: < class="code"> //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //設定Form1型態 FormStyle = fsNormal; // Application->AppMessage; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { //動態創造5個彩色背景的視窗,以供測試 for(int i=0;i<5;i ) { TForm * TForm(Form1); form->Parent = Form1; form->FormStyle = fsNormal; form->Name = "form" AnsiString(i 1); form->Width = 150; form->Height = 40; form->Top = ToolBar1->Height 40*i; form->Left = 40*i; form->Color = (TColor)RGB(255-i*50,i*50,255); form->Show(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { char name[6]; //刪除程式開始時創造的5個彩色視窗 for(int num=0;num for(int i=0;iName == name) { delete (TForm *)Components[i]; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled) { if(Msg.message==WM_MOUSEMOVE) { //取得滑鼠位置 POINT pd; GetCursorPos(&pd); pd = ScreenToClient(pd); char name[256], text[256]; //由滑鼠位置而取得Form1上物件handle HWND h = ::ChildWindowFromPoint(Handle, pd); //由物件handle取得物件相關資訊 ::GetClassName(h,name,256); ::GetWindowText(h,text,256); //即時顯示物件資訊 StaticText1->Caption = "類別:" AnsiString(name) ",內含文字:" AnsiString(text); } } //---------------------------------------------------------------------------
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-17 00:09:04 IP:61.221.xxx.xxx 未訂閱
引言: RaynorPao 大大, 多謝..多謝...... 攔截 > 因為前天網上看到了『移動滑鼠,取得 > < face="Verdana, Arial, Helvetica"> Cooky Kid 你好: 不客氣< >~~另外~~也很感謝你的熱心分享喔< > -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-24 17:37:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!