Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Blinkendes Icon im Tray?


del1312 - Di 11.07.06 10:22
Titel: Blinkendes Icon im Tray?
hab nen kleines tool was im tray minimiert wird. nun hätte ich gern das bei einer bestimmten aktion das icon als meldung anfängt zu blinken wie kann man sowas machen? hab als code das hier:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
  Begin
  Application.ShowMainForm := False; //Programm gar nicht erst anzeigen
  Hide;
  with NIM do begin
    cbSize := SizeOf (nIM);
    Wnd := Handle;
    uID := 0;
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallbackMessage := IC_CLICK;
    hIcon := Application.Icon.Handle;
    szTip := 'Statusmelder!';
  end;
  Shell_NotifyIcon(NIM_ADD, @NIM);
  end;


ich würde es ja so machen das in nem timer das icon ständig geändert wird, also zwei verschiedene, dann wirkt es ja als ob es blinkt. kann mir bitte iner helfen?!?

Moderiert von user profile iconGausi: Quote- durch Delphi-Tags ersetzt


Narses - Di 11.07.06 10:47

Moin!

Schau mal nach Suche in: Delphi-Forum, Delphi-Library COOLTRAYICON, warum das Rad immer neu erfinden... ;)

cu
Narses


del1312 - Di 11.07.06 10:51

ach naja ich hab mir das jetzt so zu recht gefummelt und irgendwie komm ich mit dem cooltrayicon nicht klar :oops:


DarkLord05 - Di 11.07.06 12:21

Hi,

was bekommst da denn nicht hin?


del1312 - Di 11.07.06 12:50

naja ich weiss nicht genau wo das angezeigte icon steht und wo ich ein zweites eintragen muss.


Narses - Di 11.07.06 12:57

Moin!

Du kannst kein zweites Eintragen, du mußt im Wechselintervall das Icon austauschen. ;)

Deshalb ja: CoolTrayIcon, da geht das alles mit ein paar Klicks und Methoden. :D

cu
Narses


del1312 - Di 11.07.06 13:03

hm mist, dann muss ich das doch mal probieren, hatte es runtergeladen und auch installiert. nun seh ich nen "CoolTrayIcon" Reiter mit zwei Kompos. Was muss ich jetzt genau machen? Die einfach in die Form ziehen und dann minimieren klappt nicht ?!?


Hobby-Programmierer - Di 11.07.06 13:32

Mahlzeit :)
... ich hatte vor einigen Jahren das gleiche Prob., hab das folgendermassen gelöst

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
...
var nIM: TNOTIFYICONDATA;
    WM_TASKBARRESTART: Cardinal;
    ShowIcon: Boolean;

...
procedure TForm_Start.Timer1Timer(Sender: TObject);
begin // Icon wechseln und blinken
  ShowIcon:= not ShowIcon;
  if ShowIcon then
    nIM.hIcon:= LoadIcon(0, IDI_EXCLAMATION)
   else
    nIM.hIcon:= LoadIcon(1, IDI_EXCLAMATION);
  nIM.szTip:= 'neuer Hint !'// neuer Hint
  Shell_NotifyIcon(NIM_MODIFY,@nIM);
end;


LG Mario


del1312 - Di 11.07.06 14:26

Hi Hobby-Programmierer,

danke für deinen Tipp und dem Code. Jetzt klappt alles, hab recht herzlichen Danke :D

Liebe Grüße
ecspooky