Taskbareintrag blinken lassen |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Um einen Taskbareintrag blinken zu lassen, kann die Funktion FlashWindow verwendet werden. Dazu wird ihr ein Handle übergeben:
begin
FlashWindow(Application.Handle, True);
end;
Um ein Formular blinken zu lassen, wird einfach das Handle des Formulars übergeben:
begin
FlashWindow(self.Handle, True);
end;
Flexibler ist man allerdings mit der erweiterten FlashWindow-Funktion, FlashWindowEx. Sie erwartet als Parameter eine Variable vom Typ FLASHWINFO, der in der Unit Windows deklariert ist:
Windows;
...
procedure TForm1.Button1Click(Sender: TObject);
var
Flash: FLASHWINFO;
begin
FillChar(Flash, SizeOf(Flash), 0);
Flash.cbSize:=SizeOf(Flash);
Flash.hwnd:=Application.Handle;
Flash.uCount:=5;
Flash.dwTimeOut:=2000;
Flash.dwFlags:=FLASHW_ALL;
FlashWindowEx(Flash);
end;
Das Feld "hwnd" entspricht dem ersten Parameter der FlashWindow-Funktion. Über "uCount" steuert man, wie oft geblinkt werden soll. Wie lange jeder Intervall dauern soll, wird dem Feld "dwTimeOut" übergeben (Zeit in Millisekunden). Über "dwFlags" lassen sich letztendlich noch einige Einstelungen tätigen. Im Beispiel hat die Variable den Wert "FLASHW_ALL", wodurch der Taskbar-Button und die Titelleiste blinken werden. Es kann zusäzlich die Konstante FLASHW_TIMER übergeben werden, wodurch die Titelleiste und/oder der Taskbutton solange blinkt, bis die Funktion wiederholt mit dem Flag FLASHW_STOP aufgerufen wird:
var
Flash: FLASHWINFO;
begin
FillChar(Flash, SizeOf(Flash), 0);
Flash.cbSize:=SizeOf(Flash);
Flash.hwnd:=Application.Handle;
Flash.dwFlags:=FLASHW_ALL or FLASHW_TIMER;
Flash.dwTimeout:=1000;
FlashWindowEx(Flash);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Flash: FLASHWINFO;
begin
FillChar(Flash, SizeOf(Flash), 0);
Flash.cbSize:=SizeOf(Flash);
Flash.hwnd:=Application.Handle;
Flash.dwFlags:=FLASHW_STOP;
FlashWindowEx(Flash);
end;
Stünde das Flag auf FLASHW_TIMERNOFG würden die Elemente blinken, bis das Fenster in den Vordergrund geholt wird.
Weitere Informationen finden sich im PSDK unter den Stichworten "FlashWindow", "FlashWindowEx" und "FLASHWINFO".
- Taskbareinträge für untergeordnete Formulare anzeigen
- Icon in der Taskleiste während des Programmablaufs ändern
- Animation zum Systemtray
- Schaltfläche in der Taskbar ausblenden
- Dimensionen der Taskbar ermitteln
- Taskbar automatisch im Hintergrund
- Taskbar verstecken/zeigen
- Beim Minimieren den Task aus der Taskleiste entfernen