Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi "Always in Back" (https://www.delphipraxis.net/16813-always-back.html)

Huso 23. Feb 2004 23:34


"Always in Back"
 
Hello Folks!
Ich sitze gerade an einem Programm, das auf dem Desktop liegen (und liegen bleiben) soll...
Gibt es sowas wie "always in back"? Ein timer-gesteuertest "sendtoback" bringt's auch nicht...
Kann mir da jm helfen?

MfG und danke im Voraus
Huso

himitsu 24. Feb 2004 02:05

Re: "Always in Back"
 
[dp]*ontop[/dp]

Das Gegenteil von StayOnTop???

OrallY 24. Feb 2004 13:01

Re: "Always in Back"
 
Mit SetWindowPos kannst du die Position der auf der "Z-Achse" beeinflussen. In deinem Fall also:
Delphi-Quellcode:
SetWindowPos(Handle, HWND_BOTTOM, Left, Top, Width, Height, 0);
Allerdings bleibt das Fenster nur solange im Hintergrund, bis man es wieder nach vorne holt. Ist also keine permanente Einstellung.

Huso 24. Feb 2004 15:23

Re: "Always in Back"
 
Also im Prinzip ist folgender Code genau das, was ich brauche, funktioniert bei mir allerdings nicht... :wall:
Delphi-Quellcode:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if Assigned(Application.MainForm) then
  begin
    Params.WndParent := GetDesktopWindow;
    Params.Style := WS_CHILD;
  end;
end;
eigentlich ändert sich nichts: Ein aktives Fenster liegt vor dem Programm, doch sobald ich wieder in meine Form klicke ist diese wieder im Fordergrund... :kotz:
Ist es vll eine Idee, dass sobald mein Fenster aktiv wird ich es wieder in den Hintergrund schicke?! :drunken:
Wie könnte ich das verwirklichen?
MfG Huso

Huso 26. Feb 2004 16:28

Re: "Always in Back"
 
Bitte helft mir :coder:
:wall: Ich komm da nun wirklich nicht weiter, wenn mir niemand hilft! :wiejetzt:
Wenn jm auch nur die geringste Idee hat :warn: bitte posten!!!

THX :firejump:

MfG Huso

PhöniX 26. Feb 2004 16:32

Re: "Always in Back"
 
ne komplizierte methode wär vielleicht:

in jede procedure dies da gibt schreiben, dass die form "in back" sein soll...
den code weiß ich grad nicht...

Huso 29. Feb 2004 13:20

Re: "Always in Back"
 
Also eigentlich müsste das doch theoretisch möglich sein den Desktop als Parent und mein Program als entsprechendes Child zu benutzen, oder? Das hätte doch den gewünschten Effekt?!
Aber was ist dann oben falsch? :gruebel:

MfG HusO

nemo2003 29. Feb 2004 13:25

Re: "Always in Back"
 
einen schönen sonntag nachmittag!

aus www.pics-software.de gibt es eine sog. "Delphi-(P)fundgrube" ;o) wo diverse Tips gegeben werden.
Da steht auch wie ein Programm ohne Taskmanager und auch ohne Tray-Hinweis amlaufen bleibt!

Schönen Sonntag noch!

SirThornberry 29. Feb 2004 13:29

Re: "Always in Back"
 
änder einfach mal von
Delphi-Quellcode:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if Assigned(Application.MainForm) then
  begin
    Params.WndParent := GetDesktopWindow;
    Params.Style := WS_CHILD;
  end;
end;
nach
Delphi-Quellcode:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.WndParent := GetDesktopWindow;
  Params.Style := WS_CHILD;
end;
Bei mir ist in "CreateParams", "if Assigned(Application.MainForm)" immer false. Nach dem ich die Bedingung raus genommen hab hats funktioniert

Huso 29. Feb 2004 13:47

Re: "Always in Back"
 
THX
Jo, jetzt geht's vielen dank!

MfG Huso


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.
Seite 1 von 3  1 23      

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