Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Seattle: Sinnvolles Verwenden einer TImageList (https://www.delphipraxis.net/189486-seattle-sinnvolles-verwenden-einer-timagelist.html)

bra 17. Jun 2016 10:05

Seattle: Sinnvolles Verwenden einer TImageList
 
Wir nutzen in unserer App eine TImageList, wo alle Icons und Bilder hinterlegt sind. Wir verwenden diverse TListViews u.ä., die zur Laufzeit erzeugt und die ImageList zugewiesen werden, wo ein Bild verwendet wird, weise ich dann den ImageIndex zu.

Meine Frage ist jetzt, wie weise ich den einzelnen Bildern sinnvoll das richtige Icon zu? Im Moment habe ich eine Liste mit Integer-Konstanten, die auf den entsprechenden ImageIndex verweisen. Irgendwie finde ich das aber zu umständlich und auch fehleranfällig, wenn sich an der ImageList mal was ändert.

Es gibt ja in der TImageList noch diese Source-Liste, wo man anhand eines Namens (String) zugreifen kann. Hier habe ich aber keine sinnvolle Möglichkeit gefunden, vom Namen den entsprechenden ImageIndex zu lesen.

Hier mal ein exemplarisches Beispiel, wie ich es im Moment mache:

Delphi-Quellcode:
type
  TdmResources = class(TDataModule)
    Icons: TImageList;
  end;

const
  cImageHome = 0;
  cImageSearch = 1;


...

Object.ImageList := Icons;
Object.ImageIndex := cImageHome;
Wie macht ihr das?

Der schöne Günther 17. Jun 2016 10:26

AW: Seattle: Sinnvolles Verwenden einer TImageList
 
Ich mache es genau so. Integer-Konstanten als Index auf irgend etwas hat man doch überall. Wenn jemand glaubt die Image-Liste auf links drehen zu müssen (nicht anfügen, das ist ja unproblematisch), dann muss er auch das "Inhaltsverzeichnis" aktualisieren.

Tut er es nicht, gibt's eins auf die Finger. Danach hat er es gelernt :twisted:


Alles andere finde ich den Aufwand nicht wert.

Rollo62 18. Jun 2016 15:50

AW: Seattle: Sinnvolles Verwenden einer TImageList
 
Zitat:

const
cImageHome = 0;
cImageSearch = 1;
Mache ich auch so, und setze die Konstanten in eine separate Unit z.B. Icons.Consts, damit ich die
global über mehrere Module nuten kann.

Was soll daran umständlich und unsicher sein, CodeCompletion und Compiler bewaren mich vor den gröbsten Fehlern.

Man könte diese auch noch als einzelne RessourcenDateien verwalten, und beim Start in die ImageList schreiben, mache ich aber normalerweise nicht so.

Rollo


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