AGB  ·  Datenschutz  ·  Impressum  







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

TCustomImageList.AddOrSet Parameter

Ein Thema von Medium · begonnen am 29. Dez 2018 · letzter Beitrag vom 30. Dez 2018
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#1

TCustomImageList.AddOrSet Parameter

  Alt 29. Dez 2018, 16:41
Moin!

Ich möchte gerne ein paar TButtons mit Bildern versehen. Die FMX Buttons bieten ja eine TImageList an - ich gehe mal stark davon aus, dass ich diese dafür nutzen kann.

Die Bilder liegen als PNG in meinem Programmverzeichnis. Leider gibt es keine einfache LoadFromFile() Methode mehr in der ImageList, sondern die Methode AddOrSet. Bei dieser verstehe ich ein paar der Parameter nicht, und die Doku sagt leider nur "keine weiteren Informationen" (Wann wird die denn eigentlich mal komplettiert??)

Code:
function AddOrSet(
  const SourceName: string;
  const Scales: array of Single;
  const FileNames: array of string;
  const TransparentColor: TColor = TColors.SysNone;
  const Width: Integer = 0;
  const Height: Integer = 0)
: TImageIndex;
Unter SourceName würde ich den Dateipfad+Namen vermuten. Aber Scales? Hab ich nicht. Ich habe ein Bild - fertig. Was muss dann da hin? Ebenso das Array von Dateinamen danach. Ich habe doch bereits einen angegeben! Was soll das dann alles noch? TransparentColor ist klar. Width und Height sind wieder komisch. Holt er sich die nicht aus der Datei? Wenn ich diese optionalen Parameter einfach nicht versorge - wird mein Bild dann überhaupt sichtbar sein, oder muss ich die Größe echt manuell setzen?

BITTE bitte Emba. Wenn schon so knappe Parameter wie "Scale" existieren, dann lasst sowas doch wenigstens nicht in der DOKU einfach leer. Langsam nervt es, dass man sich solche Dinge auf zeitfressende Weise quer im Netz zusammenklamüsern muss - wenn man überhaupt mal detaillierte Infos findet. Hierzu habe ich z.B. immer nur eine Möglichkeit gefunden, die das Laden von Bildern über aufwendige Zwischenschritte erledigt hat, oder aber es ging immer nur um die schöne praktische Art und Weise wie man es im Form-Designer machen kann. Ich muss es aber im Code tun - tut mir ja auch leid.

Weiß jemand von euch zufällig, was die Parameter genau bewirken bzw. wie sie zu versorgen wären? Danke!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#2

AW: TCustomImageList.AddOrSet Parameter

  Alt 29. Dez 2018, 21:49
Die FMX-ImageList setzt die einzelnen Bilder (auch Destination genannt) aus sogenannten Bildquellen (Source) zusammen. Eine Bildquelle wiederum ist eine Gruppe von Einzelbildern in verschiedenen Größen, die unter einem Namen (SourceName) abgelegt wird. Jedes Einzelbild dieser Bildquelle wird durch einen Faktor (Scale) und einen Dateinamen (FileName) gekennzeichnet.

Ist der bei AddOrSet angegebene SourceName bereits vorhanden, wird die entsprechende Bildquelle ersetzt und in den Destinations alle Referenzen darauf aktualisiert. Ist der SourceName neu, wird aus den Parametern Scales und FileNames eine neue Bildquelle erzeugt. Die Arrays Scales und FileNames müssen gleich lang sein.

TransparentColor gibt, wie der Name vermuten lässt, die Farbe an, die als transparent angenommen wird. Per Default ist das <keine>, womit das Bild einfach übernommen wird, wie es ist.

Width und Height geben die Nenngröße der Bildquelle an, die der Größe bei Scale = 1 entspricht. Sind Width und Height beide 0 wird die Größe des ersten Bildes (FileNames[0]) verwendet und mit dem Scales[0]-Faktor verrechnet.

Wenn ein vorhandener SourceName übergeben, ist der Rückgabewert der Funktion = 0. Andernfalls wird eine neue Destination angelegt, die ausschließlich die neu angelegte Bildquelle enthält, und der neue Index zurückgegeben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: TCustomImageList.AddOrSet Parameter

  Alt 30. Dez 2018, 16:28
Danke! Das wäre doch schon mal ein prima Text, den man in die (Online)-Hilfe-(Datei) packen könnte

So 100%ig habe ich das allerdings noch nicht verstanden - und bisher kam ich auch noch nicht dazu es zu testen. Wenn ich nun folgenden Aufruf mache:
Button1.Images.AddOrSet('C:\Ordner\Dateiname.png', [1], ['C:\Ordner\Dateiname.png']); und den ImageIndex des Buttons auf 0 setze, wird mir dann brav mein Bild "Dateiname.png" in seiner Originalgröße auf dem Button erscheinen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (30. Dez 2018 um 16:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#4

AW: TCustomImageList.AddOrSet Parameter

  Alt 30. Dez 2018, 16:43
Button1.Images.AddOrSet('C:\Ordner\Dateiname.png', [1], ['C:\Ordner\Dateiname.png']); und den ImageIndex des Buttons auf 0 setze, wird mir dann brav mein Bild "Dateiname.png" in seiner Originalgröße auf dem Button erscheinen?
  1. Der erste Parameter sollte dann besser "Dateiname" sein (oder ein anderer, sinnvoller Name des Bildchens)
  2. Der ImageIndex des Buttons sollte auf den Rückgabewert von AddOrSet gesetzt werden, sonst funktioniert das nur bei einer leeren Liste
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#5

AW: TCustomImageList.AddOrSet Parameter

  Alt 30. Dez 2018, 16:50
Das wäre doch schon mal ein prima Text, den man in die (Online)-Hilfe-(Datei) packen könnte
Ist hiermit getan.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: TCustomImageList.AddOrSet Parameter

  Alt 30. Dez 2018, 18:09
Ist hiermit getan.
Danke!

Muss die Community hier die Doku schreiben, tztztz.


Auch Danke für die weitergehende Erläuterung. Das heißt, der erste Parameter ist einfach nur ein beliebiger Name? Könnte also auch Klaus oder Birgit sein? Also letztlich nur ein "sprechender Index"? Das wäre ggf. auch noch interessant in der Doku (habe sie jetzt nicht nochmal angeschaut), da das ein Konzept ist, welches Delphianer ggf. nicht so gewohnt sind bisher.


"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:51 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