AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Verständnisschwierigkeiten ImageCollection / ImageList
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisschwierigkeiten ImageCollection / ImageList

Ein Thema von Der schöne Günther · begonnen am 17. Jun 2020 · letzter Beitrag vom 17. Jun 2020
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 08:26
Guten Tag liebe Gemeinde,

Ich habe eine Frage zur Verwendung der Komponenten für unterschiedliche Pixeldichten ("DPI-Skalierung), also ImageCollection und VirtualImageList.

An sich bin ich positiv überrascht dass es genau tut was ich mir gewünscht habe, ich bin aber verwirrt durch eine Anzeige in der IDE, ich denke die ist falsch.

Ich gehe es mal durch:
  1. Hinzufügen eines Icons in drei Größen (64, 80, 96 Pixel) zu einer ImageCollection
    1.png
  2. Verbinden der VirtualImageList mit der Collection, Hinzufügen des Icons
    2.png
  3. So sieht es in der IDE aus
    3.png
  4. So sieht es in der Anwendung aus (125 % Skalierung)
    4.png

Nein, ich meine nicht den Unterschied zwischen Bild 3 und 4 - Der ist völlig plausibel 👍. Die IDE wird stumpf hochskaliert, die laufende Anwendung hingegen wird scharf gezeichnet und nimmt auch die nächsthöhere Auflösung. Das ist alles ok.

Was ich meine: Woher nimmt er das gelbe Icon? Laut VirtualImageList (Bild 2) existiert ja gar kein gelbes Icon. Der Dialog meint, das Bild in der 80er-Auflösung würde ihn nicht interessieren und stattdessen zeigt er lieber eine nicht existierende 128er-Fassung an.

Kurzfassung: Die VCL-Anwendung tut genau was sie soll, aber die Vorschau im TVirtualImageList ist meiner Meinung nach völlig für die Tonne. Ich verstehe nicht was er mir überhaupt zeigen soll und welchen Nutzen er hat.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 08:38
Kurzfassung: Die VCL-Anwendung tut genau was sie soll, aber die Vorschau im TVirtualImageList ist meiner Meinung nach völlig für die Tonne. Ich verstehe nicht was er mir überhaupt zeigen soll und welchen Nutzen er hat.
Günni, du bist doch nun schon lang genug dabei, um zu wissen, dass der erste Release einer neuen Delphi-IDE mit neuen Features nicht ganz rund läuft und das erst mit Update 1, 2 und ggf. 3 besser wird.

Aus Interesse: Welche Pixelzahl (Höhe x Breite) steht denn in Bild drei beim dem zweiten und größsten roten Symbol rechts?
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 09:01
64*1,25 = 80

Also wird auch bei 125% Skalierung das 80x80 Bild aus der Collection genommen. Die Verbindung zwischen VirtualImageList und der ImageCollection ist ja vorhanden! Skaliert wird nur (in der VirtualImageList), wenn die Collection das nicht hergibt. Hier tut sie es aber.

PEBKAC (sorry)
http://docwiki.embarcadero.com/RADSt...rtualImageList
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 09:04
Die Verbindung zwischen VirtualImageList und der ImageCollection ist ja vorhanden! Skaliert wird nur (in der VirtualImageList), wenn die Collection das nicht hergibt. Hier tut sie es aber.
Sorry, ich habe es immer noch nicht verstanden. Das DocWiki habe ich natürlich als allererstes gelesen.
Die Verbindung zwischen beiden existiert, die Anwendung verhält sich auch vorbildlich.
Ich verstehe nur nicht weshalb mir der Editor der VirtualImageList das Bild in 80 Pixeln nicht zeigt und sich stattdessen noch eine 128er Auflösung ausdenkt.

Aus Interesse: Welche Pixelzahl (Höhe x Breite) steht denn in Bild drei beim dem zweiten und größsten roten Symbol rechts?
Er zeigt dort, in der VirtualImageList drei Symbole an:
  1. 64 × 64
  2. 96 × 96
  3. 128 × 128
imagelist.png

In der ImageCollection zeigt er korrekt an was ich auch wirklich hinzugefügt habe:
imagecollection.png

Geändert von Der schöne Günther (17. Jun 2020 um 09:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#5

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 09:20
Es versucht es mal zu verdeutlichen

ImageCollection
ImgA -> ImgA1 / ImgA2 / ImgA3.... (100, 125, 150, ...% des Bildes ImgA)
ImgB -> ImgB1 / ImgB2 / ImgB3.... (100, 125, 150, ...% des Bildes ImgB)
ImgC -> ImcC1 / ImcC2 / ImcC3.... (100, 125, 150, ...% des Bildes ImgC)

Jetzt kommt die VirtualImageList
Die nimmt erstmal ImgA, ImgB und ImgC auf

Stellst du ImgA als Glyph für eine Komponente (ToolBarButton, Button, ....) ein, dann nimmt er ImgA

Skaliert man nun die Form, dann:
- Schaut er nach, ob es ein unskaliertes Bild von ImgA im passenden Skalierungsfaktor in der ImageCollection gibt!
- Hier würde er bei 125% Skalierung dann ImgA2 nehmen
- Und das ist bei dir gelb

Es ist nicht vorgesehen, daß man unter ImgA mit seinen verschiedenen Auflösungen (100, 125, 150%) auch verschiedene Images nimmt.

Generell empfiehlt es sich einfach das ImgA/ImgA1 möglichst GROß zu wählen, so daß kleinere passend runterskaliert werden.
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 09:22
Vielen Dank für die Antwort.

Das Verhalten bemängele ich ja auch gar nicht, das ist alles 100%ig korrekt.

Mir geht es nur in der IDE um die Vorschaubilder im Editor der TVirtualImageList. Die machen keinen Sinn.
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#7

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 11:33
Ich habe zu ergründen versucht, wo das gelbe Icon herkommt.

IMHO macht auch die VirtualImageList nix falsch, die nimmt halt das erste, rote Icon. Wichtig ist auf‘m Platz... also zur Laufzeit
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 11:50
Richtig, zur Laufzeit ist alles bestens. Ich finde trotzdem dass der Editor in der IDE verwirrend ist, denn er zeigt das gelbe Icon nicht, und dafür ein 128er Icon das überhaupt nicht existiert. Soweit mich heute keiner mit Gewalt dran hindert mache ich einen Eintrag auf quality.embarcadero.com...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verständnisschwierigkeiten ImageCollection / ImageList

  Alt 17. Jun 2020, 14:31
Ich kann es jetzt nicht belegen, aber ich vermute, der Bilderlisten-Editor zeigt Bilder für die Auflösungen 100%, 150%, 200% und 300% an (analog zu FMX). Dabei nimmt er vorhandene Auflösungen aus der Collection oder skaliert die nächstliegende. Demnach sollten hier Icons für 64x64, 96x96, 128x128 und 192x192 auftauchen, aber da wird eine Begrenzung der Bildgröße nach oben zuschlagen, weshalb die 192x192 nicht angezeigt werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 04:06 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