Entwickler-Ecke
Sonstiges (Delphi) - Form immer im Hintergrund behalten
blackdrake - Fr 20.05.05 21:43
Titel: Form immer im Hintergrund behalten
Hallo.
Ich möchte mein Delphi-Form ständig im Hintergrund behalten, sodass es direkt auf dem Desktop liegt. Ich habe bereits den Artikel
http://www.google.de/url?sa=U&start=1&q=http://www.swissdelphicenter.ch/de/showcode.php%3Fid%3D2096&e=9707 angewandt, jedoch wirkt dies bei mir nicht. Ich habe "protected" in meine Form-Deklaration eingebunden. Was kann ich tun?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| type TForm1 = class(TForm) protected procedure CreateParams(var Params: TCreateParams); override;
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; |
Moderiert von
matze: Code- durch Delphi-Tags ersetzt.
feivel3333 - Fr 20.05.05 22:08
Wie sehr soll dein Fenster in den Hintergrund geschickt werden?
Mit Form1.SendToBack; kannst du es nach hinten bringen. Wenn du es mit einem Timer machst, würde es permanent nach hinten gesetzt werden.
blackdrake - Fr 20.05.05 22:13
Hallo feivel3333.
Danke für den Tipp. Das funktioniert genau so, wie ich es wollte.
feivel3333 - Fr 20.05.05 22:25
Na klasse ! Wenn alles so einfach wäre!
Benutzername - Fr 20.05.05 22:42
Oder lagers in nen Thread us, der nur diese eine Aufgabe hat, die in ner Schleife zu prüfen.
Dann hast du keine Verzögerungen die durch das Timerintervall entstehen
blackdrake - Sa 21.05.05 12:54
Hallo.
Danke für den Tipp. Ich habe aber eine bessere Variante gefunden:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TMainForm.ApplicationEvents1Activate(Sender: TObject); begin SetWindowPos(Handle, HWND_BOTTOM, Left, Top, Width, Height, 0); end; |
Ich habe jetzt noch ein Problem entdeckt:
Wenn ich in den QuickLinks "Desktop anzeigen" klicke, verschwindet meine Form. Dies ist bei meinem Programm sehr unerwünscht. Hätte ich "FormStyle = fsStayOnTop", würde das Form ständig auf dem Desktop (aber leider auch im Vordergrund) bleiben.
Meine Frage: Wie kann ich es verhindern, dass meine Form durch "Desktop anzeigen" minimiert wird?
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!