Ich habe in meinem Programm ein Popup-Menü, welches beim Rechtsklick auf das
TNA-Icon geöffnet wird. Es gibt aber ein grosses Problem....
In meinem Programm verrichtet u.a. auch ein TWebBrowser seinen Dienst und wenn eben dieser mal wieder eine Seite lädt, wird das PopUp-Menü ausgeblendet
...
Wenn ich allerdings das SetForegroundWindow weglasse habe ich natürlich ein anderes Problem, wenn der User bei offnenem Menü irgendwo anders hinklickt... was kann man da tun?
An besten wäre sicher, wenn es eine Möglichkeit gäbe den TWebBrowser "einfrieren" zu lassen und nach schliessen des Menüs an genau der Stelle, wo er angehalten wurde weiter machen zu lassen.
Delphi-Quellcode:
procedure TForm1.WndProc(
var Msg: TMessage);
var
rCursor: TPoint;
begin
if Msg.Msg = WM_USER + 20
then
begin
case Msg.lParam
of
WM_RBUTTONDOWN:
begin
{ aktuelle Cursoposition holen }
GetCursorPos(rCursor);
{ Popupmenü verschwindet wenn ein Klick außerhalb des Popupmenüs erfolgt }
SetForegroundWindow(Self.Handle);
{ Das Popupmenü erscheint an der gewünschten Position in dem TNA }
PopupMenu1.Popup(rCursor.x, rCursor.y);
end;
WM_LBUTTONDBLCLK:
begin
Visible := True;
Application.Restore;
end;
end;
end;
inherited;
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.