Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TrayIcon - Icons statisch laden (https://www.delphipraxis.net/206030-trayicon-icons-statisch-laden.html)

TERWI 11. Nov 2020 12:05

TrayIcon - Icons statisch laden
 
Ich möchte einem Tool nebem dem Main-TrayIcon auch noch weitere spendieren, welche zur LZ je nach Progammstatus wechseln und habe mich da erst mal an eine Emba-Demo gehalten.
Das funzt so weit auch prima, aber irgendwie stört es mich sehr, die Icons aus Dateien zur Laufzeit zu laden - ich hätte die gerne gleich zum Design statisch als Ressource eingebunden.
(Weil: Ico's vergessen mitzugeben, gelöscht, defekt, ...)
Über den Objektinspektor kann ich ja 1 Icon definieren - und offensichtlich auch mehrere:
Delphi-Quellcode:
  // http://docwiki.embarcadero.com/CodeExamples/Sydney/en/TTrayIcon_(Delphi)
  TrayIcon.Icons := TImageList.Create(Self);
  MyIcon := TIcon.Create;
  // Load main tray icon:
  MyIcon.LoadFromFile('icons/BATW_AC.ico');
  TrayIcon.Icons.AddIcon(MyIcon);
  TrayIcon.Icon.Assign(MyIcon);
  // Load charge icons (for looping)
  MyIcon.LoadFromFile('icons/Special_1.ico');
  TrayIcon.Icons.AddIcon(MyIcon);
  // Load charge icons (for looping)
  MyIcon.LoadFromFile('icons/Special_2.ico');
  TrayIcon.Icons.AddIcon(MyIcon);
  ... u.s.w.
Mit einer ImagelList hab ich ewig nicht mehr gearbeitet - zuletzt mit Delphi 7.
Heute - mit der Community-Edition (10.3.2) - finde ich da nix mehr zu "New Item - Load' o. ä...
Oder sehe ich den Wald vor lauter Bäumen nicht mehr ?
Meea-Dank im vorraus für hilfreiche Tipps.

scrat1979 11. Nov 2020 12:08

AW: TrayIcon - Icons statisch laden
 
Vielleicht kannst du die Icons auch zur Entwurfszeit in eine ImageList laden und zur Laufzeit das entsprechende Icon zuweisen?!

TERWI 11. Nov 2020 12:32

AW: TrayIcon - Icons statisch laden
 
Eigentlich & genau war das ja zum Schluss meine Frage:
Ich erinnere mich, das es 'Damals' mit D7 kinderleicht war ..... aktuell mit der CE hab ich da so meine Prob's, weil: WIE ?

scrat1979 11. Nov 2020 12:55

AW: TrayIcon - Icons statisch laden
 
Habe momentan leider keine Zeit zu testen, aber auf die Schnelle mit Google bei den Kollegen von SO gefunden:

Delphi-Quellcode:
var
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    ImageList1.GetBitmap(0, Bmp);
    TrayIcon1.Icon.Assign(Bmp);
    TrayIcon1.Show;
  finally
    Bmp.Free;
  end;
Eventuell statt TBitmap ein TPNGImage verwenden, aber die Vorgehensweise sollte klar sein.
Die ImageList füllst du zur Designtime über Doppelklick.

Du musst - im Bezug auf das TrayIcon - eine „externe“ ImageList verwenden. IMHO dient die ImageList des TrayIcon der Animation des TrayIcons.

Beste Grüße!

EDIT: Geht eventuell auch ohne den Umweg über ein Bitmap-Objekt:

ImageList1.GetIcon(0, TrayIcon1.Icon);

haentschman 11. Nov 2020 13:01

AW: TrayIcon - Icons statisch laden
 
Ich benutze das TJvTrayIcon wegen der Visibitiy... :thumb:

Da gibt es Icons -> ist eine Imagelist. Über den Icon Index hat man die Wahl...8-)
PS: das hat TTrayIcon auch

TERWI 11. Nov 2020 13:08

AW: TrayIcon - Icons statisch laden
 
Denke mal, ich werde falsch verstanden ....
Frage ist: Wie bekomme ich zur ENTWURFSZEIT ( ! ) z.b. über den Obj-Inspektor die ICON's in den Source.
NICHT zur Laufzeit ( !!! ).
Ich möchte die ICON als Ressource IM Programm haben.
.....ansonsten wäre ja das o.g. Beispiel schon perfekt - isses aber nicht.

Nachtrag:
TJyTrayIcon macht das betreff mehren Icon auch nur als Imagelist....

haentschman 11. Nov 2020 13:16

AW: TrayIcon - Icons statisch laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Denke mal, ich werde falsch verstanden ....
...allerdings. Wenn ich eine Imagelist (auf einem Datenmodul etc.) zur ENTWURFSZEIT fülle, ist es im Programm immer vorhanden. :gruebel:

TERWI 11. Nov 2020 13:39

AW: TrayIcon - Icons statisch laden
 
Danke für deinen Hinweis - dieser und das Pic sagt mir aber gar nichts.
Datenmodul ? Bahnhof...
Eine kurze Erklärung, wie es funzt oder Link dazu wäre hilfreich.

ghubi01 11. Nov 2020 13:51

AW: TrayIcon - Icons statisch laden
 
Hallo TERWI,

Zitat:

Zitat von TERWI (Beitrag 1477127)
Frage ist: Wie bekomme ich zur ENTWURFSZEIT ( ! ) z.b. über den Obj-Inspektor die ICON's in den Source.

- ImageList-Komponente auf die Form ziehen
- mit Doppelklick auf diese Komponente öffnet sich ein Bilderlisten-Editor
- in diesem Editor Icons hinzufügen
- im Objektinspektor: Dem Property Icons die ImiageList1 zuweisen

Zur Laufzeit einfach den IconIndex ändern, das Icon wird dann automatisch geändert.

scrat1979 11. Nov 2020 19:43

AW: TrayIcon - Icons statisch laden
 
Zitat:

Zitat von ghubi01 (Beitrag 1477134)
Hallo TERWI,

Zitat:

Zitat von TERWI (Beitrag 1477127)
Frage ist: Wie bekomme ich zur ENTWURFSZEIT ( ! ) z.b. über den Obj-Inspektor die ICON's in den Source.

- ImageList-Komponente auf die Form ziehen
- mit Doppelklick auf diese Komponente öffnet sich ein Bilderlisten-Editor
- in diesem Editor Icons hinzufügen
- im Objektinspektor: Dem Property Icons die ImiageList1 zuweisen

Zur Laufzeit einfach den IconIndex ändern, das Icon wird dann automatisch geändert.

Das würde exakt meiner Vorgehensweise entsprechen :cyclops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz