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

如何使用動態產生的VCL元件的觸發事件(僅止於ScrollBox)

尚未結案
甘蔗夫
一般會員


發表:76
回覆:19
積分:19
註冊:2004-08-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-12 10:10:07 IP:61.14.xxx.xxx 未訂閱
Dear 大大: 我用動態新增一Scrollbox,但我要用到其OnMouseWheelDown之觸發事件,故我另外定義一函式SBNouseWheelDown(TObject *Sender,TShiftState,TPoint &MousePos,bool &Handle); 故我在使用時為下 TScrollBox *a; a->OnMouseWheelDown=SBNouseWheelDown(......) 裡面的參數我不知填入何值(意即我不瞭解參數的意義,雖然看了help) 請各位大大能指教我 謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-12 13:14:24 IP:210.68.xxx.xxx 未訂閱
您好: 試試下面的程式碼
.h檔中加入
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
        void __fastcall sbxMouseWheelDown(TObject *Sender,
                      TShiftState Shift, const TPoint &MousePos, bool &Handled);    .cpp當中加入
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   TScrollBox *sbx = new TScrollBox(this);
   sbx->Parent = this;
   sbx->OnMouseWheelDown = sbxMouseWheelDown;    }
//---------------------------------------------------------------------------
void __fastcall TForm1::sbxMouseWheelDown(TObject *Sender,
      TShiftState Shift, const TPoint &MousePos, bool &Handled)
{
   //do something
}
最後要記得delete sbx;
順心
甘蔗夫
一般會員


發表:76
回覆:19
積分:19
註冊:2004-08-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-12 22:14:07 IP:218.166.xxx.xxx 未訂閱
Dear taishyang: 我試過了,似乎無法觸發滑鼠滾輪,真不知何原因        
引言: 您好: 試試下面的程式碼
.h檔中加入
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
        void __fastcall sbxMouseWheelDown(TObject *Sender,
                      TShiftState Shift, const TPoint &MousePos, bool &Handled);    .cpp當中加入
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   TScrollBox *sbx = new TScrollBox(this);
   sbx->Parent = this;
   sbx->OnMouseWheelDown = sbxMouseWheelDown;    }
//---------------------------------------------------------------------------
void __fastcall TForm1::sbxMouseWheelDown(TObject *Sender,
      TShiftState Shift, const TPoint &MousePos, bool &Handled)
{
   //do something
}
最後要記得delete sbx;
順心 < face="Verdana, Arial, Helvetica">
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-13 09:12:17 IP:210.68.xxx.xxx 未訂閱
引言:我試過了,似乎無法觸發滑鼠滾輪,真不知何原因
您是怎麼試的呢?
甘蔗夫
一般會員


發表:76
回覆:19
積分:19
註冊:2004-08-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-13 09:44:46 IP:61.14.xxx.xxx 未訂閱
其實我原本就是照你上面的作法去試,但因為都不成功,所以在這POST文章請教前輩,另外我也試過不是動態產生的SCROLLBOX,其OnMouseWheelDown事件為下:    void __fastcall TForm3::ParentSBMouseWheel(TObject *Sender,       TShiftState Shift, int WheelDelta, TPoint &MousePos, bool           &Handled) {   ParentSB->VertScrollBar->Position+=WheelDelta;   Edit1->Text="12"; }    ********ParentSB是我拖曳出來的VCL元件**************** 結果EDIT元件都沒反應    
引言:
引言:我試過了,似乎無法觸發滑鼠滾輪,真不知何原因
您是怎麼試的呢?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-09-13 09:56:50 IP:210.68.xxx.xxx 未訂閱
您好: 您要讓Scrollbox出現ScrolBar才會有反應... 也就是Scrollbox裡的元件要超出Scrollbox的範圍    順心
甘蔗夫
一般會員


發表:76
回覆:19
積分:19
註冊:2004-08-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-09-13 10:17:59 IP:61.14.xxx.xxx 未訂閱
當然有啊 我真不知為何不行    
引言: 您好: 您要讓Scrollbox出現ScrolBar才會有反應... 也就是Scrollbox裡的元件要超出Scrollbox的範圍 順心 < face="Verdana, Arial, Helvetica">
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-09-13 10:31:44 IP:210.68.xxx.xxx 未訂閱
引言: 當然有啊 我真不知為何不行
光看這兩句怎麼知道問題在哪邊?< > 請把您的專案上傳讓前輩們幫您看看< > 會員求助程式檔案上傳區 http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97
甘蔗夫
一般會員


發表:76
回覆:19
積分:19
註冊:2004-08-25

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-09-13 11:19:16 IP:61.14.xxx.xxx 未訂閱
Dear taishyang : 我無法上傳 我貼於下 //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::ScrollBox1MouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled) { ScrollBox1->VertScrollBar->Position = WheelDelta; Edit1->Text=WheelDelta; } //--------------------------------------------------------------------------- 其他屬性都是預設
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-09-13 18:47:55 IP:210.68.xxx.xxx 未訂閱
您好: 我把專案放到 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=78333 您再試試看吧
系統時間:2024-04-28 16:38:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!