Avatar billede jackass- Nybegynder
11. november 2004 - 17:28 Der er 1 løsning

TTextTrayIcon opdateringsproblem

Heys..

Jeg bruger TTestTrayIcon, og ved formcreate har jeg bare en standard tekst, fx:

TextTrayIcon1.Hint := 'Tjaa.. default tekst :D';

Det jeg gerne vil er, at når jeg clicker på tray-ikonet, så kører den en procedure List_Drives() hvori Hint bliver "opdateret" med en anden tekst;

procedure TForm1.TextTrayIcon1Click(Sender: TObject);
begin
    List_Drives;
end;

Men jeg vil gerne have, at når List_Drives() er kørt, så viser den min TextTrayIcon1.Hint ligesom når jeg holder musen over ikonet i systray, men som det er lige nu kan jeg først se opdateringen næste gang jeg holder musemarkøren hen over ikonet :-(

Jeg har prøvet med følgende;

  Form1.TextTrayIcon1.Draw;
  Form1.TextTrayIcon1.Refresh;
  Form1.TextTrayIcon1.ShowHint := TRUE;
  Form1.TextTrayIcon1.CycleIcons := TRUE;

..men det ser ikke ud til at virke. Nogen der kan hjælpe? :-/

/Jack
Avatar billede claes65 Nybegynder
08. februar 2005 - 16:02 #1
Du skal bruge:

Shell_NotifyIcon(NIM_MODIFY, @IconData);

hvor IconData er flg. struktur:

TNotifyIconData = record
  cbSize: DWORD;
  Wnd: HWND;
  uID: UINT;
  uFlags: UINT;
  uCallbackMessage: UINT;
  hIcon: HICON;
  szTip: array[0..127] of AnsiChar;
  dwState: DWORD;
  dwStateMask: DWORD;
  szInfo: array[0..255] of AnsiChar;
  uTimeOut: DWORD;
  szInfoTitle: array[0..63] of AnsiChar;
  dwInfoFlags: DWORD;
end;

Alternativt kan du downloade JEDI VCL (sourceforge.net/projects/jvcl/). Der findes en komponent, der hedder TJvTrayIcon, der kan præcis det du gerne vil.

Hilsen Claes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester