Autor Beitrag
blackdrake
Hält's aus hier
Beiträge: 8

Windows XP Professional
D7 Enterprise
BeitragVerfasst: Fr 20.05.05 21:43 
Hallo.

Ich möchte mein Delphi-Form ständig im Hintergrund behalten, sodass es direkt auf dem Desktop liegt. Ich habe bereits den Artikel www.google.de/url?sa...id%3D2096&e=9707 angewandt, jedoch wirkt dies bei mir nicht. Ich habe "protected" in meine Form-Deklaration eingebunden. Was kann ich tun?

ausblenden 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 user profile iconmatze: Code- durch Delphi-Tags ersetzt.
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8

Windows XP Professional
D7 Enterprise
BeitragVerfasst: Fr 20.05.05 22:13 
Hallo feivel3333.

Danke für den Tipp. Das funktioniert genau so, wie ich es wollte.
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Fr 20.05.05 22:25 
Na klasse ! Wenn alles so einfach wäre!
Benutzername
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 210

Win XP Pro
Delphi 7 PE, D2005 Prof. SSL
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8

Windows XP Professional
D7 Enterprise
BeitragVerfasst: Sa 21.05.05 12:54 
Hallo.

Danke für den Tipp. Ich habe aber eine bessere Variante gefunden:

ausblenden 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 user profile iconraziel: Code- durch Delphi-Tags ersetzt.