![]() |
Tutorial: Wie verwende ich das CoolTrayIcon?
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt zwar ein Codestück in der Codelibrary, um ein Programm in die TNA zu bringen, ich persönlich finde die CoolTrayIcons viel geschickter.
Zuerst muss man sich das Komponentenpaket herunterladen, z.B. ![]() Nach der erfolgreichen Installation gibt es ein neues Tab in Delphi: Tray Icons. Dort sind zwei Komponenten zu finden. CoolTrayIcon und TextTrayIcon. Ich persönlich bevorzuge das CoolTrayIcon und werde hier ausschließlich dieses beschreiben. Als erstes muss man sich ein CoolTrayIcon aufs Form ziehen. Im Objektinspektor können einige Einstellungen getroffen werden, zuerst aber zu den einfachen. Das TrayIcon soll ja einzigartig sein, also sollte ein eigenes Logo vorhanden sein, und nicht das Standardlogo. Dazu gibt es mehrere Möglichkeiten:
Sobald das Icon festgelegt ist, kann der Spaß eigentlich losgehen. Will man das TrayIcon anzeigen/ausblenden, so setzt man die "IconVisible"-Eigenschaft auf True bzw. False. Es gibt noch einige weitere Eigenschaften, die teilweise wichtig sind:
So, aber genug der Theorie, jetzt kommt die Praxis. Um also eine Anwendung zu bauen, die ein TrayIcon verwendet, brauchen wir folgendes: ein CoolTrayIcon, einen Button, und ein PopupMenu. Dem PopupMenu fügen wir zwei Items hinzu:
Delphi-Quellcode:
Im OnCreate des Forms wird das TrayIcon angezeigt:
CoolTrayIcon1.HideMainForm;
Delphi-Quellcode:
Und last but not least weisen wir der PopupMenu-Eigenschaft des TrayIcons noch PopupMenu1 zu.
CoolTrayIcon1.IconVisible := True;
Anschließend funktioniert euer erstes Programm mit dem TrayIcon (jedenfalls sollte es das). Doch die Funktionalität des TrayIcons reicht viel weiter. Zum Beispiel kann der Button in der Taskleiste entfernt werden: dazu fügen wir noch zwei Buttons hinzu:
Ab Windows2000 gibt es auch die Möglichkeit, BalloonHints anzuzeigen. Auch dies wird vom CoolTrayIcon unterstützt. Dazu platzieren wir noch einen Button aufs Form, und geben ihm die Caption "BalloonHint anzeigen". Der Code im OnClick ist etwas komplizierter, ich poste ihn mal hier rein und erkläre ihn anschließend.
Delphi-Quellcode:
Zuerst werden mit Hilfe des InputQueries die Informationen gesammelt: Titel, Text und ein TimeOut (in Sekunden). Wurde alles gültig eingegeben, so wird der BalloonHint mit Hilfe der Funktion "ShowBalloonHint" angezeigt. Die einzelnen Parameter der Funktion sind leicht erklärt:
procedure TForm1.Button4Click(Sender: TObject);
var Titel, Text, sTimeout: String; Timeout: Integer; begin if InputQuery('Titel', 'Titel eingeben:', Titel) and InputQuery('Text', 'Text eingeben:', Text) and InputQuery('Timeout', 'Timeout eingeben (in Sekunden):', sTimeout) then begin if TryStrToInt(sTimeOut, TimeOut) then CoolTrayIcon1.ShowBalloonHint(Titel, Text, bitInfo, TimeOut) else MessageDlg('Timeout ungültig', mtError, [mbOk], 0); end; end;
So, damit wäre ich eigentlich am Ende angelangt. Eventuelle Fragen beantworte ich gerne. Und für alle, die zu faul waren, das Beispielprojekt selbst mitzuerstellen, füge ich es hier hinzu. Greetz alcaeus [edit=fkerber]Neu abgespeichert wg. Code-Highlighting. Mfg, fkerber[/edit] |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Bei den Balloonevents zB OnBalloonHintClick sollte man noch erwähnen, das diese nur unter WINXP oder höher funktionieren.
|
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Hallo
sehr schöne Sachen :) aber kann man auch das Programm-Icon in Taskleiste animiren mit Texte oder Bilder? Das Icon neben Computer-Uhr ist zuklein und kann man nicht viel Sachen machen. Das Icon in Taskleiste ist grösser und kann man was drauf fantasieren Ist es möglich? bey |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Hi,
bei den JVCL gibt es eine Komponente, die genau das kann. |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Kann mir zufällig einer sagen wie diese Komponente heißt? Im Full-Package der Jedis kann ichs aufgrund der Masse an Komponenten nicht finden :D
|
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Moin,
sie heißt TJvTrayicon, wenn ich's recht in Erinnerung habe. ;) |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Ach, die kann auch den Taskbar-Button verändern? Nicht gewusst!
|
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Hallo alcaeus, vielen Dank für Deine Mühe!
Meine Begeisterung für CoolTrayIcon hält sich jedoch (bisher) in sehr engen Grenzen. Ich würde gern ein Fenster minimiert starten (also daß es nach Programmstart gar nicht erst erscheint), angeblich soll das ja mit solchen TrayIcon-Komponenten möglich sein. Jedoch entpuppt sich das als Geheimwissenschaft. Weder das Ausprobieren von Cool-/TextTrayIcon noch von LMDTrayIcon, weder die Recherche in diesem noch im Delphi-forum.de-Forum haben mich diesbezüglich weitergebracht, und das inzwischen seit Tagen!! Weißt Du, wie man das schafft? Ich habe es nicht einmal geschafft, die Installationen von Cool-/TexttrayIcon in mehreren Delphi-Versionen fehlerfrei hinzubekommen, es ging nie ohne Compilermeckerei ab. Entweder wird bei der Programmierung geschludert, oder die Delphi-Installationen sind zu komplex, als daß diese ein determiniertes Verhalten an den Tag legen. Damit wird die Programmiererei an sich aber zunehmend fraglich. Oder es gibt andere Probleme, beispielhaft an D6: Die Installation des Packages verlief (fast) fehlerfrei (es fehlte nur eine Ressourcendatei, die er neu anlegte), jedoch findet der Compiler die DCUs nicht, obwohl er die beim Installieren angelegt hat (habe selbst nachgeschaut). Also manuell in das Lib-Verzeichnis rübergeschaufelt (blieben im Installationsverzeichnis). Was sind denn das für ein Delphi, das zu dämlich ist, sich die Kompilaten in den korrekten Ordner abzulegen?? Ist das nicht alles zum Verzweifeln? Ich bin sauer bis zum Anschlag und noch weit darüber hinaus... Danke für Deine Aufmerksamkeit und Dein Bemühen! Nette Grüße Delphi-Laie |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Zitat:
Deinen Frust mit der CoolTrayIcon Komponenente kann ich nicht nachvollziehen. Bei mir hat die Installation unter D6 und auch unter D2700 auf Anhieb funktioniert. Frage: Hast du die Installationsanleitung (install.txt) beachtet? Insbesondere Punkt 3: Zitat:
Zitat:
CoolTrayIcon Komponenente möglich. Da spielt diese Komponente überhaupt keine Rolle. Es muss nur eine einzige Zeile in der dpr Datei hinzugefügt werden.
Delphi-Quellcode:
begin
Application.ShowMainForm := False; // <-- Hauptform beim Start verstecken. Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Re: Tutorial: Wie verwende ich das CoolTrayIcon?
Hallo toms, vielen herzlichen Dank für Deine Antwort!
Nein, ich habe Punkt 3 in der Installationsanleitung nicht beachtet. Habe jetzt mal in meiner "Install.txt" nachgeschaut , dort steht (nur) folgendes Zitat:
Zum minimierten Starten: Wie ich mit Cooltrayicon das erreiche, weiß ich leider immer noch nicht, dazu hattest Du Dich nicht geäußert. Die Anweisung Application.ShowMainForm := False; kenne ich durchaus, sie ist n.m.Erkenntnissen auch die einzige, mit der man minimiert starten kann. Hilft mir aber nicht weiter. Das Rumgemache am Projekt-Quelltext (warum wird der ab Delphi3 versteckt? führt leider ziemlich schnell zu Programmabstürzen (darum wohl das Verstecken) - dabei ist eine Projektdatei doch auch nur ein Programm mit eingelinkter Formularunit?! Ich möchte - als nächsten Schritt - diesen minimierten Programmstart bedingt, optional hinbekommen (nämlich dann, wenn ein Programm konfiguriert ist). Dazu müßte ich endlich mal herausfinden, wie man minimiert aufs TrayIcon startet. Form1.visible:=false funktioniert bekanntermaßen ebensowenig wie Form1.hide, wenn es vom Ereignis Form1.Create aufgerufen wird (warum auch immer, ich weiß es bis heute nicht). Und ich frage mich, wie man das bei CoolTrayIcon und LMDIcon anders lösen will, aber das darf gern deren Geheimnis bleiben (Recherchen in den Quelltexten blieben erfolglos). Mir würde es schon reichen, wenn ich das hinbekäme. Wenn Du oder jemand anders das weiß und mir helfen kann, bin ich sehr dankbar. Vielen Dank für Deine Geduld und Mühe Der leider extrem frustrierte Delphi-Laie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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