Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Hint in der TNA (https://www.delphipraxis.net/2042-hint-der-tna.html)

Alexander 4. Jan 2003 20:02


Hint in der TNA
 
HAllo
wie kann ich den Hint meines Programms, das in der TNA sitzt, nachträglichn ändern. Ich weiß nur, dass ich beim Adden des Icons dies machen kann (TaskBarAddIcon).
Nur wie kann ich jetzt mitten im Programmablauf das ändern? Muss ich das Icon erst wieder verschwinden lassen und dann wieder anzeigen lassen, oder gibt es da irgendeine Update-Funktion? Wenn ja wie?

MathiasSimmack 4. Jan 2003 20:13

Was´n "TaskbarAddIcon"?
Die Funktion/Prozedur von einer Komponente?
Wenn ja, dann sollte diese Komponente auch eine Art Update-Funktion haben.

Alexander 4. Jan 2003 20:28

nein ist keine Komponente, ist eine Funktion von mir. Ich wollte sie noch anhängen, dann habe ich es wohl vergessen ;-)
Delphi-Quellcode:
procedure TaskBarAddIcon;
var tnid : TNOTIFYICONDATA ;
begin
    tnid.cbSize := sizeof(TNOTIFYICONDATA);
    tnid.Wnd := Form1.handle;              
    tnid.uID := 1;                
    tnid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    tnid.uCallbackMessage := WM_TASKBAREVENT;      
    tnid.hIcon := form1.image2.picture.icon.handle;
    strcopy(tnid.szTip,'MailWatcher V 1.0'+#13+' e-Mails auf dem Server');               // Hint
    Shell_NotifyIcon(NIM_ADD, @tnid);
end;
Ich hoffe ihr könnt mir helfen

sakura 4. Jan 2003 20:32

Genauso, wie das hinzufügen eines Icons, nur dass Du NIM_MODIFY als Flag setzt.

Delphi-Quellcode:
Shell_NotifyIcon(NIM_MODIFY, @tnid);

Alexander 5. Jan 2003 09:45

ah danke schön

Alexander 5. Jan 2003 10:35

Ich habe noch eine Frage und zwar möchte ich jetzt meine Funktion auch in anderen Units nutzen. Also habe ich sie zwischen Public und end; geschrieben, nur kommt dann immer folgender Fehler
Code:
[Fehler] UNIT1.PAS(37): Ungenügende Forward- oder External-Deklaration: 'TForm1.TaskBarModifyIcon'
Mein Public:
Code:
  public
     procedure WMTASKBAREVENT(var message: TMessage); message WM_TASKBAREVENT;
     function TaskBarModifyIcon(hicon1 : HIcon; anzahl : Integer):Boolean;
  end;
Woran liegt das?

theomega 5. Jan 2003 10:42

Du mußt den Klassennamen davor schreiben, vermutlich TForm1

fiasko 5. Jan 2003 10:44

Code:
[Fehler] UNIT1.PAS(37): Ungenügende Forward- oder External-Deklaration: 'TForm1.TaskBarModifyIcon'

Sicher hast du im Implementation Teil der Unit vergessen die Funktion wie folgt zu deklarieren:

Delphi-Quellcode:
procedure TForm1.TaskBarModifyIcon;
begin
  {...}
end;
Wenn du sie also als Methode eines Objektes und als "normale" Procedure ham willst, mußt du sie auch 2x implementieren.


Thomas[/delphi]

Alexander 5. Jan 2003 10:53

nochmals danke.
Ich dachte ich hätte davor TForm1 geschrieben


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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