Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tray Icon (https://www.delphipraxis.net/149916-tray-icon.html)

Jamah 2. Apr 2010 10:11


Tray Icon
 
Moin Leute.
Ich wollte ne Anwendung von mir in der Taskleiste verschwinden lassen und im Tray wieder auftauchen. Und zwar in jedem Zustand, egal ob minimiert oder maximiert.
Alle sagen: Entweder: Riesencode, den ich als Anfänger nicht verstehe oder son Zusatz, den man bei Torry oder so bekommt.
Blöder Weise arbeite ich mit Delphi 2010 und CoolTray geht z.B. nur bis Delphi 7. Kann ich das trotzdem benutzen?
Oder gibt es eine Alternative?
Danke

Matze 2. Apr 2010 10:18

Re: Tray Icon
 
Hallo,

es ist zwar nicht unbedingt leicht, den kompletten Source zu verstehen, aber es ist einfach, ihn zu verwenden.
2 Prozeduren (OnDestroy/OnCreate), der Rest ist Copy & Paste.

Einen Versuch ist es wert, bevor es gar nicht klappt. Und das habe ich damals als Anfänger auch mit dem Code hinbekommen. ;)

Wobei es sicherlich für Delphi 2010 entsprechende Komponenten gibt. Vielleicht ist sogar etwas bei Delphi dabei?

Grüße, Matze

DeddyH 2. Apr 2010 10:21

Re: Tray Icon
 
Ist auf dem Reiter "Zusätzlich" nicht das TTrayIcon zu finden?

TitanNano 2. Apr 2010 10:24

Re: Tray Icon
 
hallo,
mit diesem Code kannst du dein Programm aus er Task leiste verschwinden lassen:
Delphi-Quellcode:
CoolTrayIcon1.HideMainForm;
CoolTrayIcon1.IconVisible := True;
jetzt ist es nur noch als CoolTrayIcon zu sehen.

Jamah 2. Apr 2010 10:26

Re: Tray Icon
 
Oh mein Gott. Bin ich doof :wall: :wall: :wall:

Da ist tatsächlich was dabei. Es gibt ein TTrayIcon Tool oder wie man das nennt.
Jetzt ist nurnoch die Frage, wie ich das Programm aus der Startleiste verschwinden lasse. Geht das genauso leicht?

Das mit CoolTrayIcon kann ja nur klappen, wenn ich CoolTrayIcon installiert hab. Oder?

DeddyH 2. Apr 2010 10:29

Re: Tray Icon
 
Ich will mich nicht zu weit aus dem Fenster lehnen, aber ich hab mal gehört, dass das eingebaute TTrayIcon eigentlich dem CoolTrayIcon entsprechen soll. Schau doch einfach, ob die Methoden gleich benannt sind.

TitanNano 2. Apr 2010 10:40

Re: Tray Icon
 
Zitat:

Zitat von Jamah
Oh mein Gott. Bin ich doof :wall: :wall: :wall:
Jetzt ist nurnoch die Frage, wie ich das Programm aus der Startleiste verschwinden lasse. Geht das genauso leicht?

man lässt es mit,
Delphi-Quellcode:
CoolTrayIcon1.HideMainForm;
aus der Task leiste verschwinden und mit,
Delphi-Quellcode:
CoolTrayIcon1.IconVisible := True;
NUR NOCH als COOLTRAYICON anzeigen!!

DeddyH 2. Apr 2010 10:41

Re: Tray Icon
 
Er hat aber kein CoolTrayIcon.

Jamah 2. Apr 2010 10:42

Re: Tray Icon
 
Geht leider wirklich nicht.

TitanNano 2. Apr 2010 10:55

Re: Tray Icon
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier ist das CoolTrayTcon:

Jamah 2. Apr 2010 11:06

Re: Tray Icon
 
Ok. Danke.
Aber das muss doch irgendwie auch so gehen, wenn schon ne komponente mitgeliefert wird...

TitanNano 2. Apr 2010 11:08

Re: Tray Icon
 
Entschuldigung,
Um das Programm aus der Task leiste zu entfernen werden diese beiden Codes benötigt:

Verschwinden lassen:
Delphi-Quellcode:
CoolTrayIcon1.HideTaskbarIcon;
Anzeigenlassen:
Delphi-Quellcode:
CoolTrayIcon1.ShowTaskbarIcon;

DeddyH 2. Apr 2010 11:16

Re: Tray Icon
 
Zum Standard-TrayIcon hab ich auf die Schnelle 2 Beispiele gefunden:
Beispiel 1
Beispiel 2

Jamah 4. Apr 2010 12:51

Re: Tray Icon
 
Alles klar, so langsam werd ich hier irre. Das muss irgendwie einfach gehen. CoolTrayIcon läuft mal eher garnicht, das kann man unter 2010 Arc nicht mal ohne stundenlange Errorbehebung compilieren.

Ich also mal in die .dpr geguckt und am Anfang das hier gefunden:
Delphi-Quellcode:
program SDStart;

uses
  Forms,
  SdStarter in 'SdStarter.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;  //hier siehts irgendwie aus, als wärs leicht zu ändern
  Application.Title := 'Help-Disk';
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.Run;
end.
Das markierte oben einfach zu ändern bringt nix. Auch der trick eines anderen, einfach ein
Delphi-Quellcode:
Application.ShowMainForm:= false;
hinzuzufügen tut hier nix.
Hat das eventuell damit zu tun, dass ich Form1.Borderstyle auf bsNone gesetzt habe? Ich hatte da irgendwo was aufgeschnappt, dass der dan rumzickt.
Ich werd hier draus nicht schlau. Gäbe es alternativ einfach eine CoolTrayIcon-artige Komponente für D2010?
Danke

Jamah 7. Apr 2010 13:37

Re: Tray Icon
 
Ich wollte nochmal schnelle ein update geben, vielleicht weiß ja doch noch jemand bescheid:

Also ich habs geschafft, CoolTrayIcon mit einer kleinen veränderung (Pchar und AnsiString problem, oder sowas) zu installieren.
Funktioniert auch soweit.

Aber: Wenn ich jetzt
Delphi-Quellcode:
CoolTrayIcon1.HideTaskbarIcon;
eingebe,
dann tut der einfach garnichts. Weder im OnCreate noch in einer ButtonClick prozedur.

Mit
Delphi-Quellcode:
CoolTrayIcon1.HideMainForm;
verschwidnet aber alles bis auf das Task Icon.

Was nu?

(Ich benutze Windows 7)


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