AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TrayIcon - Icons statisch laden

Ein Thema von TERWI · begonnen am 11. Nov 2020 · letzter Beitrag vom 12. Nov 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
378 Beiträge
 
Delphi 11 Alexandria
 
#1

TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 12:05
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.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 12:08
Vielleicht kannst du die Icons auch zur Entwurfszeit in eine ImageList laden und zur Laufzeit das entsprechende Icon zuweisen?!
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
378 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 12:32
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 12:55
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);
Michael Kübler

Geändert von scrat1979 (11. Nov 2020 um 13:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#5

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 13:01
Ich benutze das TJvTrayIcon wegen der Visibitiy...

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

Geändert von haentschman (11. Nov 2020 um 13:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
378 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 13:08
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....

Geändert von TERWI (11. Nov 2020 um 13:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#7

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 13:16
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.
Miniaturansicht angehängter Grafiken
imagelist.png  

Geändert von haentschman (11. Nov 2020 um 13:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
378 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 13:39
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.
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
127 Beiträge
 
Delphi 12 Athens
 
#9

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 13:51
Hallo TERWI,

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.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TrayIcon - Icons statisch laden

  Alt 11. Nov 2020, 19:43
Hallo TERWI,

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
Michael Kübler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 Uhr.
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