動態生成二層PopupMenu時,滑鼠移到第一層會自動調用OnClick |
缺席
|
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
已爬過文,或許沒有精確使用關鍵字,所以並沒有找到相關文章,別人似乎也有這個問題,只是沒有解決?
http://topic.csdn.net/t/20020802/19/919653.html 每個Item都指到相同的OnClick,依照不同的Tag或HInt執行出不同的結果,雖然可以實現,但當滑鼠移動到第一層時,在無按下滑鼠左鍵的情況下,OnClick會自動被調用,但如果這個Item只有一層時,就不會有這種情況! 不知道先進同好是否知道這個問題,謝謝! |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
謝謝您的關注
這樣開兩個主題,沒關係吧,請轉到 https://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=95850 其實這沒有資料庫,只是很單純的PopupMenu的問題,當有SubItem時,滑鼠移到Item時,會自動觸發Item的On-Click, 能否不讓它自動觸發呢? 謝謝! |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
對了,程式都在w2k上試的,也許您的問題在於作業系統(Vista)。
第一次,用Delphi7測,除了要刪除一行外,沒有你說的問題。 program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. 第二次測試,用D2009,也沒有您說的問題,對不起,沒有D2007版本可以測。
------
努力會更接近成功 |
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
謝謝答覆
我是用Delphi2007 Update4 沒錯,執行起來確實有問題,PopupMenu沒有On-mouse-over,但當有SubItem時,滑鼠移到Item上確實會自動觸發Item的On-Click,我重新上傳了檔案 http://delphi.ktop.com.tw/download.php?download=upload/490c64194c935_test.rar,謝謝。 P.S:檔案下載之後,請將副檔名.rar改成.exe,~ |
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
How to stop a TMenuitem OnClick firing when children are displayed?
http://coding.derkeiler.com/Archive/Delphi/comp.lang.pascal.delphi.misc/2006-08/msg00136.html 謝謝! |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
真的吔,您的exe檔在w2k電腦中,按右鍵移至item-1,Form1.caption隨即變為item-1,雖然Subitem也出現了,但很怪,您確定第一個上傳的版本在您電腦編譯後也會這樣嗎?
建議改一個Delphi版本測,反正D2009還可以下載。 ===================引 用 pcernet 文 章=================== 謝謝答覆 我是用Delphi2007 Update4 沒錯,執行起來確實有問題,PopupMenu沒有On-mouse-over,但當有SubItem時,滑鼠移到Item上確實會自動觸發Item的On-Click,我重新上傳了檔案 http://delphi.ktop.com.tw/download.php?download=upload/490c64194c935_test.rar,謝謝。 P.S:檔案下載之後,請將副檔名.rar改成.exe,~
------
努力會更接近成功 |
pcernet
初階會員 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
真的很感謝您的答覆,沒錯,這個Exe檔就是用給您的程式所編譯的,我找過很多網路文章,都是只有問題,沒有答案。
我也裝過Delphi2009,或許是開始支援Unicode,所以有些控件安裝上都出現問題,因此暫時就不用了, VCL裡頭,應該是一個命令一個動作,但PopupMenu卻出現沒有On-Mouse-over事件,卻在有SubItem的Item上,能在滑鼠移到上面時執行的卻又是On-Click,真的很奇怪,是Bug嗎?真的不行,我會考慮您的建議,裝回Delphi2009.... Tks~ |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
我試了一下,d7 、d2007 Update 4 、d2009 update1 都是一樣的問題
不知道是不是 windows 訊息機制的問題 ===================引 用 pcernet 文 章=================== 真的很感謝您的答覆,沒錯,這個Exe檔就是用給您的程式所編譯的,我找過很多網路文章,都是只有問題,沒有答案。 我也裝過Delphi2009,或許是開始支援Unicode,所以有些控件安裝上都出現問題,因此暫時就不用了, VCL裡頭,應該是一個命令一個動作,但PopupMenu卻出現沒有On-Mouse-over事件,卻在有SubItem的Item上,能在滑鼠移到上面時執行的卻又是On-Click,真的很奇怪,是Bug嗎?真的不行,我會考慮您的建議,裝回Delphi2009.... Tks~
------
價值的展現,來自於你用哪一個角度來看待它!! |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
careychen 兄,本來就想請您試一下,您都用d2007的,但你們的OS應都是XP的,獨我的是W2K,我測是j都有問題的(d7,d2009),pcernet 給我的Source以w2k編譯是沒問題的,但他編譯完後的程式,在w2k上是有問題的。
===================引 用 careychen 文 章=================== 我試了一下,d7 、d2007 Update 4 、d2009 update1 都是一樣的問題 不知道是不是 windows 訊息機制的問題 ===================引 用 pcernet 文 章=================== 真的很感謝您的答覆,沒錯,這個Exe檔就是用給您的程式所編譯的,我找過很多網路文章,都是只有問題,沒有答案。 我也裝過Delphi2009,或許是開始支援Unicode,所以有些控件安裝上都出現問題,因此暫時就不用了, VCL裡頭,應該是一個命令一個動作,但PopupMenu卻出現沒有On-Mouse-over事件,卻在有SubItem的Item上,能在滑鼠移到上面時執行的卻又是On-Click,真的很奇怪,是Bug嗎?真的不行,我會考慮您的建議,裝回Delphi2009.... Tks~
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-11-02 14:38:18, 註解 無‧
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
慘了,剛才用C++Builder6(w2k)試了一下,真的會有問題,滑鼠才移過去,Caption就變了,真的是Borland的Bug。
[code cpp] //--------------------------------------------------------------------------- #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::Item11Click(TObject *Sender) { Caption = "Item-1"; } //--------------------------------------------------------------------------- void __fastcall TForm1::Subitem1Click(TObject *Sender) { Caption = "Subitem"; } //--------------------------------------------------------------------------- [/code]
------
努力會更接近成功 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |