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

Tray' PopMenu..

答題得分者是:hagar
nnn0918k
一般會員


發表:12
回覆:33
積分:14
註冊:2003-05-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-23 10:55:49 IP:61.219.xxx.xxx 未訂閱
當我用程式在工作列的時間區那,建立一個Tray圖示後,再加個PopMenu上去。 如同別的程式一樣,按右鍵(或者左鍵)跳出PopMenu。 可是,我的程式,跳出PopMenu後,如果不按PopMenu上面的Menu的話,他就永遠在那邊了.. 別的程式(如FlashGet),如果不想選PopMenu上面的Menu的話,可以直接點選別的地方,他就會不見了。 可是我的卻不行.. 而且似乎站內的其他Tray程式也有相同的問題呢! 「記憶體釋放(常駐)」<~像這個就有相同的問題.. 連Tray範例也是.. 以上 火舞精靈 - 蘇
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 11:17:45 IP:211.23.xxx.xxx 未訂閱
引言: 當我用程式在工作列的時間區那,建立一個Tray圖示後,再加個PopMenu上去。 如同別的程式一樣,按右鍵(或者左鍵)跳出PopMenu。 可是,我的程式,跳出PopMenu後,如果不按PopMenu上面的Menu的話,他就永遠在那邊了.. 別的程式(如FlashGet),如果不想選PopMenu上面的Menu的話,可以直接點選別的地方,他就會不見了。 可是我的卻不行.. 而且似乎站內的其他Tray程式也有相同的問題呢! 「記憶體釋放(常駐)」<~像這個就有相同的問題.. 連Tray範例也是.. 以上 火舞精靈 - 蘇
我自己寫了個小程式試一下, 不會發生你說狀況. 說說你是用什麼方式 POPUP MENU 的, 或是你用那一個元件來做成. 這樣才比較容易找出問題來!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
nnn0918k
一般會員


發表:12
回覆:33
積分:14
註冊:2003-05-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-23 11:29:02 IP:61.219.xxx.xxx 未訂閱
引言: 我自己寫了個小程式試一下, 不會發生你說狀況. 說說你是用什麼方式 POPUP MENU 的, 或是你用那一個元件來做成. 這樣才比較容易找出問題來!! ...Aquarius
procedure TForm1.FormCreate(Sender: TObject);
var
  ico: ticon;
begin
  GlobalMemoryStatus(memory);
  ico := ticon.create;
  imagelist1.GetIcon(0, ico);
  BorderIcons := [biSystemMenu];
  IconCount := 0;
  IconData.cbSize := sizeof(IconData);
  IconData.Wnd := Handle;
  IconData.uID := 100;
  IconData.uFlags := NIF_MESSAGE   NIF_ICON   NIF_TIP;
  IconData.uCallbackMessage := WM_USER   1;
  IconData.hIcon := ico.handle;
  StrPCopy(IconData.szTip,floatToStr(memory.dwAvailPhys / 1024 / 1024)  ' MB');
  Shell_NotifyIcon(NIM_ADD, @IconData);
  Timer1.Interval := 1000;
  Timer1.Enabled := true;
  ico.free;
end;    procedure TForm1.WndProc(var Msg: TMessage);
var
  p: TPoint;
begin
  case Msg.Msg of
    WM_USER   1:
      case Msg.lParam of
        WM_RBUTTONDOWN:
          begin // 在圖上按了左鍵
            GetCursorPos(p);
            PopupMenu1.Popup(p.x, p.y);
          end;
        WM_LBUTTONDOWN:
          begin // 在圖上按了右鍵
            open1Click(form1);
          end;
      end;
  end;      inherited;
end;
以上兩段節錄自站內的「記憶體釋放(常駐)」.. 我家是WinXP..Delphi7.. 火舞精靈 - 蘇
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 11:30:19 IP:202.39.xxx.xxx 未訂閱
http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=5d8b43e560dcae5&rnum=5    Christo Craus: You have to call SetForegroundWindow before showing the popup menu:
  WM_RBUTTONUP :
  begin
    GetCursorPos(pos);   //Gets current position of mouse cursor
    SetForegroundWindow(Form1.handle);
    PopupMenu1.Popup(pos.x, pos.y);
  end;
--- --<-<-<@
nnn0918k
一般會員


發表:12
回覆:33
積分:14
註冊:2003-05-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 11:39:04 IP:61.219.xxx.xxx 未訂閱
引言: http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=5d8b43e560dcae5&rnum=5 Christo Craus: You have to call SetForegroundWindow before showing the popup menu:
  WM_RBUTTONUP :
  begin
    GetCursorPos(pos);   //Gets current position of mouse cursor
    SetForegroundWindow(Form1.handle);
    PopupMenu1.Popup(pos.x, pos.y);
  end;
--- --<-<-<@
可以了耶.. 感謝你囉! 火舞精靈 - 蘇
系統時間:2024-05-10 8:51:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!