![]() |
Taskleiste - Buttonblinken
Hallo alle zusammen!
Hätte eine Frage, hab schon gesucht, aber nicht gefunden... Ich möchte gerne den Button in der Taskleiste blinken lassen, so wies manche Programme ja tun, um auf sich aufmerksam zu machen. Blos wie? mfg Sonic :?: |
Re: Taskleiste - Buttonblinken
Code:
1. Parameter = Handle der Anwendung (bei VCL, IMHO "Application.Handle")
BOOL FlashWindow(
HWND hWnd, BOOL bInvert ); 2. Parameter = true, dann blinkt´s |
Re: Taskleiste - Buttonblinken
Danke erstmal,
Habe schon mal ausprobiert. Verhält sich aber ein bisschen komisch - Blinkt zwar, aber... Ich habe Windows XP, weiß nicht ob das eine Rolle spielt? Wenn ich folgenden Code verwende, dann leuchtet der Taskleisten-Button am Schluss nach dem das Fenster wieder maximiert ist immer!? zu Beginn: Timer1 = TTimer; Timerintervall = 500 Enabled = FALSE
Code:
procedure TForm1.Button1Click(Sender: TObject); begin Application.Minimize; Timer1.Enabled := TRUE; end; procedure TForm1.Timer1Timer(Sender: TObject); begin FlashWindow(Application.Handle, TRUE); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnRestore := DoOnRestoreApplication; end; procedure TForm1.DoOnRestoreApplication(Sender : TObject); begin Timer1.Enabled := FALSE; end; Mfg Sonic :gruebel: |
Re: Taskleiste - Buttonblinken
Ich kenn mich da ja nicht aus, aber vielleicht brauchst du dazu gar keinen Timer, sondern musst, wenn es aufhören soll zu blinken einfach
Delphi-Quellcode:
schreiben.
FlashWindow(Application.Handle, FALSE);
Ich gehe davon aus, dass das einfach nur dem System sagt, dass der Button jetzt blinken soll, bis man ihm sagt, es soll damit aufhören. Man liest sich, Stanlay :hi: |
Re: Taskleiste - Buttonblinken
Eben nicht.
Zitat:
|
Re: Taskleiste - Buttonblinken
Zitat:
|
Re: Taskleiste - Buttonblinken
Ja, war ja auch nicht böse gemeint. Habe eben bloß fix im PSDK nachgeschaut ... ich geb´s ja zu ... :cheers:
|
Re: Taskleiste - Buttonblinken
In der Hilfe steht das man einen Timer dafür braucht...
Ich bin draufgekommen, das es manchmal schon funktioniert. Ich hab auch schon, folgendes versucht...
Delphi-Quellcode:
Also am Schlss nochmal FALSE schalten. Machts aber noch schlimmer.
procedure TForm1.DoOnRestoreApplication(Sender : TObject);
begin * Timer1.Enabled := FALSE; FlashWindow(Application.Handle, FALSE); end; Hab die Funktion auch schon einzeln nur in ein Button Click getan, um zu sehen was sie macht. Mir unklar :gruebel: Mfg Mike |
Re: Taskleiste - Buttonblinken
Die Funktion invertiert die Titelleiste des Fensters (bzw. den Button in der Startleiste) genau einmal. Aus einer aktiven Titelzeile wird so
Delphi-Quellcode:
eine inaktive. Um den Vorgang umzukehren und die Titelzeile wieder als aktiv darzustellen, musst du die Funktion noch einmal aufrufen - und genau so wie zuvor:
FlashWindow(self.Handle,true);
Delphi-Quellcode:
"false" als zweiter Parameter bedeutet nur, dass die Titelzeile in ihren ursprünglichen Zustand versetzt wird. War sie also inaktiv, wird sie das auch wieder. War sie aktiv, dann wird sie durch "false" eben wieder aktiv.
FlashWindow(self.Handle,true);
Ein typisches Geblinke der Fenstertitelzeile via Button-Klick und ohne Timer:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; begin for i := 1 to 4 do begin FlashWindow(self.Handle,true); if(i < 4) then sleep(60); end; end; |
Re: Taskleiste - Buttonblinken
Ich werfe noch mal ganz mutig ein FlashWindowEx in die Runde. *werf*
Da kann man alles einstellen, wie oft, wie lange, wo, warum, weshalb, ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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-2025 by Thomas Breitkreuz