![]() |
Delphi-Version: XE7
VCL Form als Popup Style
Unter der Eigenschaft FormStyles habe ich bei Firemonkey Forms die Möglichkeit diese auf Popup zu setzten.
Dies ermöglicht es, dass sich die Form genauso verhält wie ein Popup-Menü. Die Hauptform behält den Fokus und die Popup-Form "legt" sich lediglich darüber. Außerdem verschwindet die Popup-Form automatisch sobald eine andere Aktion vom Benutzer ausgeführt wird, die sich nicht auf die Popup-Form bezieht. Nun versuche ich das ganze in VCL zu realiseren. Ich dachte an das überschreiben der CreateParams mit WS_POPUP bzw WS_POPUPWINDOW. Allerdings verliert die Hauptform den Fokus und wird auch nicht automatisch ausgeblendet. |
AW: VCL Form als Popup Style
WS_EX_NOACTIVATE
oder Kein Show, sondern erst ShowWindow mit SW_SHOWMINNOACTIVE und danach Visible auf True setzen? |
AW: VCL Form als Popup Style
Die aufgerufene "Popup-Form" erhält bei einem Klick weiterhin den Fokus und wird auch nicht automatisch ausgeblendet :(
So wird die Form aufgerufen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ShowWindow(Form2.Handle, SW_SHOWNOACTIVATE); Form2.Visible := true; end; Und hier die CreateParams der "Popup-Form"
Delphi-Quellcode:
procedure TForm2.CreateParams(var Params: TCreateParams);
begin inherited; Params.Style := Params.Style or WS_POPUP; Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE; end; |
AW: VCL Form als Popup Style
Warum
Delphi-Quellcode:
, wo du es das erste Mal doch richtig gemacht hast?
+
Nja, im MSDN steht, daß diese Styles nicht kompatibel mit gewissen anderen Styles sind. (soweit ich mich erinnere) Wenn ja, dann solltest du dafür sorgen, daß diese Styles nicht ebenfalls enthalten sind. Und eventuell auch mal dort nachlesen: ![]() |
AW: VCL Form als Popup Style
Das + in or abzuändern ist leider auch nicht die Lösung.
Ich frag mich nur, weshalb es im FMX Framework so einfach ist eine Popup Form zu erzeugen und im eigentlich nativen VCL so umständlich? Gegoogelt habe ich natürlich schon, undzwar mehrere Stunden. Ansonsten hätte ich nicht die Frage gestellt. |
AW: VCL Form als Popup Style
Zitat:
Es heißt nur, dass die VCL die Windows-Controls benutzt, und die geben das von dir gewünschte Verhalten halt nicht ohne Kopfstände her. Vielleicht ist hier was Interessantes dabei: ![]() |
AW: VCL Form als Popup Style
Zitat:
Danke Uli, ![]() |
AW: VCL Form als Popup Style
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz