PAB das ist fies!
Spätestens wenn er das erste Panel einsetzt und nur OnMouse im Form hat, dann ist's vorbei mit dem "überall" hinklicken...
Bei sowas muß man die Eventqueue selber auswerten...
Beispiel:
|
Quellcode
|
1
2
3
4
5
6
7
|
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if(Msg.message = 517)then
begin
TabControl1.Perform(513,msg.wParam,msg.lParam);
end;
end;
|
und eingebunden wird das in Form.OnCreate so:
|
Quellcode
|
1
|
Application.OnMessage := AppMessage;
|
Also was macht das Beispiel eigentlich? Nun, der Code soll bewirken, das ein Rechtsclick auf TabControl1 auch die Tabs umschaltet (tut es normal nicht und das ist der einzige Weg, das es das doch macht). Also fang ich alle Rechtsklicks (EventID = 517) ab und sage TabControl1 es soll einen Linksclick (EventID=513) verarbeiten.
In deinem Fall müßtest du dann also 513 und 517 abfangen und den Focus aus TEdit nehmen.
Achja, mit
|
Quellcode
|
1
|
Handled := true;
|
verhindert man, das dieses Event noch weiter verarbeitet wird. Ohne änderung wird das Signal so weiter verarbeitet, als wäre nichts passiert.
gruß, Texx