Hallo,
ich möchte ein zweites Formular in meiner Anwendnung anzeigen, welches jedoch niemals aktiviert werden sollte. Ich möchte dabei ein ähnliches Verhalten wie die Delphi
IDE mit der Codevervollständigung erreichen. Ein vollwertiges Fenster, immer im Vordergrund, jedoch ohne das es tatäschlich aktiviert wird (ähnlich einem Popup).
Dafür setze ich in CreateParams den ExStyle folgendermaßen:
Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_NOACTIVATE;
Das funktioniert allerdings nur bei Mouseclicks. Eine Anzeige mit Form.Visible := True; aktiviert das Fenster trotzdem. Das lässt sich mit einem manuellen Aufruf über die Windows-
API umgehen, so z.B.:
ShowWindow(Form.Handle, SW_NOACTIVATE);
Das funktioniert, nur umgeht man da die
VCL und es treten seltsame Phänomene auf, denn für die
VCL ist die Form noch unsichtbar und alle Komponenten, die von TWinControl abgeleitet sind, werden nicht angezeigt.
Kennt jemand eine Lösung für dieses Problem? Ich möchte nur ungern den Fokus selber zurücksetzen müssen, denn das führt zu einem Flackern der Titelleiste des Fensters.
karlkoch