Objekte an ListBox.Items hängen ohne AddObject?
Ich hab mich früher mal geärgert, daß man bei ListBox (was wiederum TStrings nutzt) so einen Umweg machen muß um ein Objekt zuzuweisen. Zuerst erstellen, dann über AddObject zuweisen. Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var Ico: TIcon; begin Ico := TIcon.Create;
Ico.Handle := Application.Icon.Handle;
ListBox1.Items.AddObject('Application-Icon', Ico);
|
Fand ich irgendwie kompliziert, da man zuerst ein TIcon erstellen muß usw. .
Dabei gehts auch direkt, d.h. ohne den Umweg. Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var k: Integer; begin k := ListBox1.Items.Add('Application-Icon');
ListBox1.Items.Objects[k] := TIcon.Create;
TIcon(ListBox1.Items.Objects[k]).Handle := Application.Icon.Handle;
|
Das ganze ist nicht unbedingt kürzer, aber doch einfacher zu handhaben, da man hier dem Item das Objekt direkt zuweisen kann.
Moderiert von jasocul: Beitrag geprüft am 13.05.2006