請問如何只使用一個PopupMenu元件來讓許多的DBGrid共用 |
尚未結案
|
andy1119
一般會員 發表:32 回覆:35 積分:13 註冊:2003-11-09 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
看這樣行不行?
procedure TForm1.PopupMenu1Popup(Sender: TObject); var p: TPoint; wc: TWincontrol; begin GetCursorPos(p); wc := FindVCLWindow(p); if (wc <> nil) then begin if wc = DBGrid1 then // ... if wc = DBGrid2 then // ... end; end;--- 屬於那自己生命的歌 不管是什麼顏色 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
andy1119
一般會員 發表:32 回覆:35 積分:13 註冊:2003-11-09 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
我試 Design Time Create 的 DBGrid 沒問題..... 如果是 Run Time Create 的 DBGrid, 且沒有 Assign Name Property, 當然是空的, 如:
procedure TForm1.Button1Click(Sender: TObject); begin with TDBGrid.Create(self)do begin parent := self; popupmenu := popupmenu1; end; end; |
andy1119
一般會員 發表:32 回覆:35 積分:13 註冊:2003-11-09 發送簡訊給我 |
@@咦小弟也是在Design Time Create的TDBGrid
我說一下我測試的方法好了
首先開一個新的application
然後在form1上放兩個TDBGrid分別為DBGrid1與DBGrid2
在放上一個TPopupMenu元件
滑鼠雙擊該元件並新增一個新的TMenuItem
再點選進去新建立的TMenuItem後
並填寫下列程式碼
procedure TForm1.N1Click(Sender: TObject);
begin
showmessage(TPopupMenu(Sender).PopupComponent.name);
end;
執行後程式無論點選那一個DBGrid都只秀出空字串
請問一下是否有那個地方觀念弄錯了呢 ^_^"""
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
那段程式是寫在 TPopupMenu.OnPopup Event, 不是 MenuItem.OnClick Event. 因為 MenuItem.OnClick 的 Sender 會是 TMenuItem 而非 TPopupMenu. 因為 TPopupMenu.PopupComponent 是 TComponent, 取得後運用較廣, 如:
if PopupMenu1.PopupComponent is TImage then with TImage(PopupMenu1.PopupComponent) do begin ... end;發表人 - Mickey 於 2004/03/04 10:21:52 |
andy1119
一般會員 發表:32 回覆:35 積分:13 註冊:2003-11-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |