Entwickler-Ecke

Visual Component Library (VCL) - ...Objekte an ListBox.Items hängen ohne AddObject?


Popov - Mi 11.02.04 23:22
Titel: ...Objekte an ListBox.Items hängen ohne AddObject?
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
  {Objekt erstellen}
  Ico := TIcon.Create;

  {Als Beispiel ein Icon zuweisen}
  Ico.Handle := Application.Icon.Handle;

  {Item erstellen und Objekt zuweisen}
  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
  {Item erstellen und die Index-Nummer merken}
  k := ListBox1.Items.Add('Application-Icon');

  {Objekt erstellen}
  ListBox1.Items.Objects[k] := TIcon.Create;

  {Als Beispiel ein Icon zuweisen}
  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 user profile iconjasocul: Beitrag geprüft am 13.05.2006