Zitat:
Naja wenn du dir sicher bist, dass in deiner ImageIndex die Icons immer an den Positionen 0..n liegen kannst du das so machen. Das bedeutet im Umkehrschluss aber auch, dass du bei einem neuen Status immer etwaige andere Icons verschieben und dann auch im Code die Änderungen nachziehen musst. Es sei denn, die ImageList wird nur für diese Status Images benutzt. Aber auch das halte ich für eine etwas unsaubere Implementierung.
Deswegen habe ich den IconIndex im Setter oben ja auf Ord(Value [State]) gesetzt. Somit war er immer gleich. Das Problem mit sich verschiebenen Indexes hatte ich nie.
Zitat:
Zudem verkürzt sich dein OnGetImageIndex()
Ich male meine Icons selber. OnGetImageIndex benutze ich nicht.
Helferfunktionen werde ich gleich einbauen so wie du vorgeschlagen hast. Das klingt gut und so werde ich auch ein paar Properties los.
@Aviator
deine Änderungen sind eingebaut. Alle Abhängigkeiten sind verschwunden, Helferfunktionen eingebaut und IconIndex ist auch weg.
Änderungen am Klassenobjekt
- 3 Feldvariablen weniger
- 6 Properties weniger
- 36 Zeilen Code ohne Leerzeilen weniger
- 3 Helferfunktionen sind dazugekommen die all die vorherige Arbeit in jeweils einer Zeile erledigen.
Die
Unit mit meinem Klassenobjekt hat zwar noch immer 953 Zeilen mit Leerzeilen und ein paar Kommentaren, aber da steckt auch viel drin. Zusammen 92 Properties.
Keine Redundanzen, keine doppelten Properties. Alles wichtige Dinge für den Programmablauf.