Hi,
dafür bietet sich ein Array Property an.
Allerdings würde ich das auch über eine Klasse lösen, ungefähr so:
Delphi-Quellcode:
unit MyClasses;
interface
uses
Contnrs, SysUtils;
type
TItem =
class(TObject)
private
FTitel:
string;
FHandle: Integer;
public
property Titel:
string read FTitel
write FTitel;
property Handle: Integer
read FHandle
write FHandle;
end;
type
TItemList =
class(TObject)
private
FItems: TObjectList;
function GetItems(
Index: Integer): TItem;
public
constructor Create;
destructor Destroy;
override;
procedure Add(
const ATitel:
string; AHandle: Integer);
procedure Clear;
function Count: Integer;
function ItemByName(AName:
string): TItem;
property Items[
Index: Integer]: TItem
read GetItems;
end;
implementation
constructor TItemList.Create;
begin
inherited;
FItems := TObjectList.Create(True);
end;
destructor TItemList.Destroy;
begin
FItems.Free;
inherited Destroy;
end;
procedure TItemList.Add(
const ATitel:
string; AHandle: Integer);
Var
AItem: TItem;
begin
AItem := TItem.Create;
AItem.Titel := ATitel;
AItem.Handle := AHandle;
FItems.Add(AItem);
end;
procedure TItemList.Clear;
begin
FItems.Clear;
end;
function TItemList.Count: Integer;
begin
Result := FItems.Count;
end;
function TItemList.GetItems(
Index: Integer): TItem;
begin
Result := TItem(FItems[
Index]);
end;
function TItemList.ItemByName(AName:
string): TItem;
Var
i: Integer;
begin
Result :=
nil;
for i := 0
to Count - 1
do
if SameText(FItems[i], AName)
then
begin
Result := Items[i];
Exit;
end;
end;
end.
Ich glaube nur, dass Delphi 6 noch keine TObjectList hatte, oder?
Dann muss natürlich ein TList herhalten, und beim Delete und Clear die Freigabe des Objektes mit erfolgen.
Frank