Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fenster immer im Vordergrund? (https://www.delphipraxis.net/866-fenster-immer-im-vordergrund.html)

CalganX 17. Sep 2002 17:38


Fenster immer im Vordergrund?
 
Ja, wie geht das?

Chris

Luckie 17. Sep 2002 17:41

Code:
SetWindowPos(Handle, HWND_TOPMOST, 0 , 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);

d3g 17. Sep 2002 17:42

Hi Chris,

Code:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, 0);
MfG,
d3g

[edit]Mal wieder was gleichzeitiges. ;-)[/edit]

Luckie 17. Sep 2002 17:44

Zitat:

Zitat von d3g
[edit]Mal wieder was gleichzeitiges. ;-)[/edit]

Falsch, ich war schneller. :wink:

City Light 20. Feb 2003 04:13

Hi Leut'z


bei mir funktioniert das nicht!!!

ich habe zwei Formen ,Form2 soll immer in Vordergrund bleiben.
und bei einen klick auf einen button soll er wieder normal werden...

HELP!!

Form2.show;

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if Form1.Visible = False then
     Form1.Visible := True
  else
  Form1.Hide;
  SetWindowPos(Handle, HWND_TOPMOST, 0 , 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);
end;
PS: Habe Windows XP falls das euch hilfen soll

oki 20. Feb 2003 08:30

Hallo im Club der Fenster-Oben-Windows-XP-geschädigten!

Fenstereigenschaft stayOnTop geht auch nicht. Nur wenn einer auf die Idee kommt.

Gruß oki

City Light 20. Feb 2003 15:48

Ich habs gefunden *freu*

Delphi-Quellcode:
{
[b]Ein Fenster einer Anwendung immer zuoberst anzeigen, auch bei minimiertem Hauptfenster[/b]

 Manchmal möchte man, daß geöffnete (Unter-)Fenster einer Anwendung auf dem Desktop bleiben, wenn das Hauptfenster minimiert wird, oder daß ein Fenster immer im Vordergrund bleibt, auch wenn es nicht den Fokus hat.

Ich will mal kurz zeigen, wie man das zur Laufzeit einstellen kann:
}
 
//OnTop..
SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,
             Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
//..und zurück:
SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width,
             Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

//OnDesktop..
SetWindowLong(Handle, GWL_HWNDPARENT, 0);
//..und zurück:
SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle);

 
//FormStyle dabei auf fsNormal setzen. Das ist alles! (Ralph Stoesser)

City Light 21. Feb 2003 00:40

Nachtrag:

Nun leider funktioniert ein befehl immer noch nicht in meiner Anwendung!*heul*

Delphi-Quellcode:
//..und zurück:
SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle);
hier was ich habe: Form2 wird mit Form2.Show; geöffnet und ist auf fsStayOnTopeingestellt ,und sollte es auch bleiben.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if Form1.Visible = False then
  begin
     Form1.Visible := True
   [color=#ff002a]//..und zurück:
   SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle);[/color]
  end
  else
  Form1.Hide;
  //OnDesktop..
  SetWindowLong(Handle, GWL_HWNDPARENT, 0);
end;
Hat jemand einen Rat für mich?

_frank_ 21. Feb 2003 01:05

versuch mal nach den SetWindowLong Zeilen folgende Zeile:

SetWindowPos(handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED or SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_NOCOPYBITS);

ich brauch das immer, wenn ich den Style eines Controls verändere, um dieses zu "refreshen". vielleicht muss man dies bei GWL_HWNDPARENT auch machen.

Gruß Frank

City Light 21. Feb 2003 01:19

Hallo Frank

Hat leider auch nicht geholfen!ich weiß da nich mehr weiter.. :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Seite 1 von 2  1 2      

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