![]() |
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 |
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 ?? |
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 |
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! |
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:
ausblenden, aber wie bekomme ich den Eintrag der Form weg ?
ShowWindow(Application.Handle, SW_HIDE);
Gruß Joachim |
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);
|
Re: "Always in Back"
Hilft das auch bei nicht laufener Shell Explorer.exe wiel dann kein Desktop-Fenster vorhanden ist...
MFG Thomas |
Re: "Always in Back"
Hallo ich hätte vielleicht noch eine andere Lösung für das Problem.
Delphi-Quellcode:
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.
procedure TForm1.JvAppEvents1Activate(Sender: TObject);
begin Form1.SendToBack; end; |
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. |
Re: "Always in Back"
Hallo!
Ich beziehe mich auf den Anfang vom Thread, also das Grundproblem :)
Delphi-Quellcode:
Ich weiß nicht so recht wo ich die Procedure TForm1.CreateParams einbinden muss? Könnte mir vll. jemand da auf die Sprünge helfen?
procedure TForm1.CreateParams(var Params: TCreateParams);
begin inherited CreateParams(Params); Params.WndParent := GetDesktopWindow; Params.Style := WS_CHILD; end; mfg Th |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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 by Thomas Breitkreuz