Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi BringToFront ohne Activate (https://www.delphipraxis.net/71310-bringtofront-ohne-activate.html)

_frank_ 13. Jun 2006 04:11


BringToFront ohne Activate
 
Hi,
ich suche nach einer möglichkeit, ein Formular nach vorne zu bringen, ohne es zu aktivieren.

Delphi-Quellcode:
procedure TForm_DFMPreview.FormActivate(Sender: TObject);
begin
  if form_Inspector.visible then
    form_Inspector.show;
end;
Wie zu sehen ist, soll das form_Inspector nach vorne geholt werden wenn Form_DFMPreview aktiviert wird. Das funktioniert, jedoch wird form_Inspector aktiviert und Form_DFMPreview kann nicht aktiviert werden.
Da Beide Forms nicht modal sein sollen, kann z.B. das Mainform die Formulare überdecken. wenn zum Preview-form gewechselt wird sollen aber beide Formulare wieder voll sichtbar sein.
Die beiden Formulare gehören zusammen (inspector ist an preview gedockt).

Ich hoffe, ich habe mich deutlich ausgedrückt...

Gruß Frank

marabu 13. Jun 2006 06:08

Re: BringToFront ohne Activate
 
Guten Morgen Frank,

die API Funktion SetWindowPos() erlaubt dir bei Verwendung des Flags SWP_NOACTIVATE die Z-Ordnung zu verändern ohne dass das entsprechende Fenster aktiviert wird.

Grüße vom marabu

_frank_ 13. Jun 2006 07:06

Re: BringToFront ohne Activate
 
Danke, an SetWindowPos hatte ich jetzt gar nicht gedacht, aber funktioniert super...
wens interessiert:

Delphi-Quellcode:
procedure TForm_DFMPreview.FormActivate(Sender: TObject);
begin
  if form_Inspector.visible then
    SetWindowPos(form_Inspector.handle,HWND_TOP,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz