![]() |
Anwendung in Taskleiste rechts
Guten Abend zusammen,
ich habe mal wieder eine Frage ! Was muß ich machen um unter Delphi eine Anwendung zuschreiben die wenn mann sie startet als Icon in der Taskleiste unteren rechten Rand (neben der Uhr ) angezeigt wird??? Ich arbeite mit Delphi 6.0 Pro und habe mir Delphi 2005 Pro gekauft (muss mich haber erstmal durchlesen) Also wehr kann mir da weiter helfen ? Danke Reini64 |
Re: Anwendung in Taskleiste rechts
|
Re: Anwendung in Taskleiste rechts
Such mal nach 'CoolTrayIcon'. Mit der Komponente kannst du sowas recht einfach machen. Ob Delphi 2005 selbst was mitbringt, weiss ich nicht.
|
Re: Anwendung in Taskleiste rechts
Hi Dax,
danke für die schnelle Info ! Aber mir wird kein Icon angezeigt ! Reini64 |
Re: Anwendung in Taskleiste rechts
Hast du den Code aus der Code-Library genau so ausgeführt, wie beschrieben? Bei mir geht das einwandfrei.
|
Re: Anwendung in Taskleiste rechts
Tada:
![]() Wenn du alles so machst wie ich es beschrieben habe, funktioniert es auch. Einziger Nachteil: du musst eine Komponente verwenden. Fuer den Anfang empfehle ich dir das aber. Greetz alcaeus |
Re: Anwendung in Taskleiste rechts
Also ich habe den Code kopiert und die Objecte eingefügt.
Wenn ich nun auf minimieren gehe wird kein Icon angezeigt! hier nochmal den Code
Delphi-Quellcode:
nit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI, Menus; type TForm1 = class(TForm) PopupMenu1: TPopupMenu; Item31: TMenuItem; Item21: TMenuItem; Item11: TMenuItem; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } IconData: TNotifyIconData; public { Public-Deklarationen } procedure WndProc(var Msg: TMessage); override; procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; end; var Form1: TForm1; implementation {$R *.dfm} //////////////////////////////////////////////////////////////////////////////// // auf Mausklicks reagieren, Fensterprozedur erweitern procedure TForm1.WndProc(var Msg: TMessage); var Point: TPoint; begin if Msg.Msg = WM_USER + 20 then begin case Msg.lParam of WM_RBUTTONDOWN: begin SetForegroundWindow(Handle); GetCursorPos(Point); PopUpMenu1.PopUp(Point.X, Point.Y); end; WM_LBUTTONDOWN: begin //ShowMessage('links runter'); end; WM_LBUTTONDBLCLK: begin Form1.Show; // Icon nur anzeigen wenn Fenster minimiert Shell_NotifyIcon(NIM_DELETE, @IconData); end; end; end; inherited; end; //////////////////////////////////////////////////////////////////////////////// // beim Minimieren Fomr verstecken und Icon in die TNA procedure TForm1.WMSysCommand(var Message: TWMSysCommand); begin if Message.CmdType and $FFF0 = SC_MINIMIZE then begin Hide; // Icon nur anzeigen wenn Fenster minimiert Shell_NotifyIcon(NIM_ADD, @IconData); end else inherited; end; //////////////////////////////////////////////////////////////////////////////// // Beim beenden Icon entfernen procedure TForm1.FormDestroy(Sender: TObject); begin Shell_NotifyIcon(NIM_DELETE, @IconData); end; //////////////////////////////////////////////////////////////////////////////// // Beim Erstellen des Formulares TNotifyIconData-Struktur initialisieren procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; //Programm gar nicht erst anzeigen IconData.cbSize := SizeOf(IconData); IconData.Wnd := Handle; IconData.uID := 100; IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; IconData.uCallBackMessage := WM_USER + 20; IconData.hIcon := Application.Icon.Handle; IconData.szTip := 'Dies ist ein TNA-Icon'; Shell_NotifyIcon(NIM_ADD, @IconData); // fügt das Icon ein end; end; end. |
Re: Anwendung in Taskleiste rechts
Hast du die Ereignisse auch im OI zugewiesen?
|
Re: Anwendung in Taskleiste rechts
Vielen Dank für den Tipp,
habe das komplett vergessen!! Jetzt klappt es auch, als nochmals herzlichen Dank Reinhard |
Re: Anwendung in Taskleiste rechts
Bei JEDI is auch ne coole Komponente dabei
|
Re: Anwendung in Taskleiste rechts
Zitat:
|
Re: Anwendung in Taskleiste rechts
Ich hab auch noch eine Frage.
Wie kann ich den Text der erscheint wenn man über das Icon in der Taskleiste geht ändern?? Könnte ich sehr gut gebrauchen. ArmyMan |
Re: Anwendung in Taskleiste rechts
Guckst du hier:
Delphi-Quellcode:
Änderst du krass auf den Tooltipp deiner Wahl ;)
IconData.szTip := 'Dies ist ein TNA-Icon';
mfg :hi: |
Re: Anwendung in Taskleiste rechts
Danach muss aber dann auch
Code:
aufgerufen werden!
Shell_NotifyIcon([b]NIM_MODIFY[/b], @IconData);
|
Re: Anwendung in Taskleiste rechts
Stimmt, hat ich vergessen zu erwähnen, ein glück das es luckie gibt :wink:
|
Re: Anwendung in Taskleiste rechts
Das weiss ich schon. Kann man aber eine Variable anstelle von dem direkten String machen?? Bei mir funktioniert das nicht.
Ich meine so: text := 'bla'; IconData.szTip := text; Kann mir jemand sagen wie ich sowas hinkriege. Danke ArmyMan |
Re: Anwendung in Taskleiste rechts
was funzt denn nicht?
|
Re: Anwendung in Taskleiste rechts
Das mit der Variable geht nicht. Es kommt ein Fehler wegen Array und String oder so was. Das muss doch irgendwie gehen dass ich in einer Variable den Text speichern kann den er da anzeigen sollte.
ArmyMan |
Re: Anwendung in Taskleiste rechts
Zitat:
Delphi-Quellcode:
:gruebel:
text := 'bla';
IconData.szTip[x] := text; [edit] Da war was mit Delphi-Code :mrgreen: [/edit] MfG freak |
Re: Anwendung in Taskleiste rechts
Was kommt bei dem "x" hin?? So gehts nicht.
ArmyMan |
Re: Anwendung in Taskleiste rechts
wenn iconData dein TNotify... Typ ist und text deine String-Variable versuch mal:
Delphi-Quellcode:
StrCopy(IconData.szTip, PChar(text));
Shell_NotifyIcon(NIM_MODIFY, @IconData); |
Re: Anwendung in Taskleiste rechts
Caste die String-Variable beim Zuweisen nach PChar und es sollte gehen.
|
Re: Anwendung in Taskleiste rechts
Funktioniert Super!
Vielen Dank. ArmyMan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 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