Hallo,
tschja, habe ich. Aber das ist viel zu viel zum posten.
Hier nur applicationevents.onmessage:
Delphi-Quellcode:
procedure TFHaupt.AEMessage(var Msg: tagMSG; var Handled: Boolean);
var p: tpoint;
wc: TWinControl;
begin
//mouse wheel scrolling for the control under the mouse
if (Msg.message = WM_MOUSEWHEEL) then begin
p.X:=Word(Msg.lParam);
p.Y:=HiWord(Msg.lParam);
wc := FindVCLWindow(p);
if wc=nil then begin handled:=true;
exit;
end;
if wc=lv then begin
lv.setfocus;
handled:=false;
end else
if wc=tree then begin
tree.setfocus;
handled:=false;
end else
if assigned(WndSearchFiles) and (wc=WndSearchFiles.searchresult) then begin
WndSearchFiles.searchresult.setfocus;
handled:=false
end else
handled:=false
end;
//Hier sitzt das Problem
if (msg.message>WM_MOUSEFIRST) and (msg.message<WM_MOUSELast) then begin
handled:=false;
SizeAbbruch:=true;
end;
end;
Das erste ist zwar nicht relevant für mein Problem, aber ich lasse es mal drin...
SizeAbbruch wird bei der Dir-Größenberechnung in einer Schleife immer wieder abgefragt.
Wie gesagt: Abgebrochen wird ordentlich. Aber er führt die eigentliche Click-Prozedur erst beim zweiten Click aus.
Das geht bis zum "Schließen-Kreuz" des Formulars. Auch da braucht man zwei Clicks.
Gruß
Mattze