Delphi-PRAXiS
Seite 2 von 3     12 3      

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 29. Mär 2004 22:42

Re: "Always in Back"
 
Tja, da bin ich nochmal...
Also mein Problem ist, dass ich mit der obigen Variante keine weiteren Formulare aus meinem Programm öffnen kann und es fängt an zu hängen, sobald man einen button klickt.

Hat jm einen besseren Vorschlag??

Falls ja postet eure Ideen bitte! :coder:
Das ist nämlich eine Facharbeit und die muss ich in den nächsten Tagen vorstellen...
Also bitte ich euch darum vielleicht mal etwas über mein Problem nachzudenken :gruebel:

THX, für alles -- Delphi-Praxis RULEZ :dp:

MfG Huso

Ghostwalker 30. Mär 2004 08:20

Re: "Always in Back"
 
Ähm...mal ne Frage....welchen sinn hat das Fenster wenns eh dauernd im Hintergrund sein soll und der Benutzer mit anderen Fenstern im Vordergrund arbeitet ?

Wärs da nicht evtl. sinniger einfach ein Tray-Icon zu verwenden ??

Huso 30. Mär 2004 15:39

Re: "Always in Back"
 
Also der Sinn des Progs ist es den Desktop zu ersetzen. Es werden aus meinem Programm heraus Anwendungen geöffnet... Es dient den Schülern Selbsterklärend den Rechner zur Verfügung zustellen...
Vei weitern Fragen bitte Posten...

MfG Huso

atreju2oo0 30. Mär 2004 16:27

Re: "Always in Back"
 
Immer wenn dein Programm den Focus gekommt müsstest Du einfach den Focus weiterschieben auf das letzte Fenster;
1) Also immer überwachen wer gerade aktiv ist;
2) Als Handle merken;
3) Bei Form.show oder so den Focus auf das gespeicherte Handle setzen...

Zumindest würde ich es so versuchen...
Bin aber (wie schon oft hier gemerkt :pale: ) auch nicht der Vollblutprofi!

Mithotyn 12. Apr 2004 22:51

Re: "Always in Back"
 
Hi Leute.

Hab auch noch ein kleines Problem mit dem Code.
Also mein Fenster ist nun immer im Hintergrund. Soweit so gut.
Jetzt hab ich aber einen zusätzlichen Eintrag in der Taskbar. Einmal den
der Application und den neuen nun direkt für Form1.

Die Application konnte ich mit

Delphi-Quellcode:
ShowWindow(Application.Handle, SW_HIDE);
ausblenden, aber wie bekomme ich den Eintrag der Form weg ?

Gruß Joachim

Aike 21. Mai 2005 10:30

Re: "Always in Back"
 
Mir gefällt die Lösung von p.i.c.s.:
Delphi-Quellcode:
SetWindowPos(Handle, HWND_NOTOPMOST,Left,Top,Width,Height,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

thomasdrewermann 23. Sep 2005 21:12

Re: "Always in Back"
 
Hilft das auch bei nicht laufener Shell Explorer.exe wiel dann kein Desktop-Fenster vorhanden ist...

MFG
Thomas

Tisse 9. Feb 2006 12:25

Re: "Always in Back"
 
Hallo ich hätte vielleicht noch eine andere Lösung für das Problem.

Delphi-Quellcode:
procedure TForm1.JvAppEvents1Activate(Sender: TObject);
begin
  Form1.SendToBack;
end;
Wenn ich den Code in das "OnActivte" Ereigniss meiner "Form1" schreibe funktioniert das bei mir nicht :?: , wenn ich es über die "JvAppEvents" Komponente mache bleibt mein Fenster immer im Hintergrund, das vorher aktiv gewesene Fenster veliert dabei den Fokus.

DGL-luke 9. Feb 2006 21:23

Re: "Always in Back"
 
@thomasdrewermann: Wenn du die Explorer.exe schon komplett abschießt - warum dann nicht gleich eine eigene Shell bauen?

Ich weiss ja nicht, inwiefern noch die Startleiste benötigt wird - aber wenn nicht, dann kann man einfach ein Konto auf dem PC einrichten, in dem man die shell, sprich die explorer.exe, ersetzt. das ganze muss man windows dann noch in der registry mitteilen, es gibt auch ein paar sachen, die man beachten muss.

Inwieweit man das dann als Desktopfenster deklarieren kann, weiss ich aber nicht, oder ob das Desktopfenster noch unter explorer.exe liegt.

Logic 16. Apr 2006 12:38

Re: "Always in Back"
 
Hallo!

Ich beziehe mich auf den Anfang vom Thread, also das Grundproblem :)

Delphi-Quellcode:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.WndParent := GetDesktopWindow;
  Params.Style := WS_CHILD;
end;
Ich weiß nicht so recht wo ich die Procedure TForm1.CreateParams einbinden muss? Könnte mir vll. jemand da auf die Sprünge helfen?

mfg
Th


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.
Seite 2 von 3     12 3      

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