Du brauchst eine objektklasse, die eine
Name property hat:
Delphi-Quellcode:
type
TNamedObject = class(TObject);
private
FName:string;
public
constructor Creat(const aName:string);
Class function FindInstance(const aName:string):TNamedObject;
property Name:String read FString write FString;
end;
implementation
uses contnr;
var
ObjectList: TObjectList;
constructor TName.Creat(const aName:string);
begin
FName := aName;
ObjectList.add(self); // selbst verwaltung
end;
Class function FindInstance(const aName:string):TNamedObject;
var i:Integer;
begin
result := nil;
for i:= 0 to ObjectList.count-1 do
if sameText(TNamedObject(ObjectList[i]).FName, aName) then
begin
result := TNamedObject(ObjectList[i]);
exit;
end;
end;
initialization
ObjectList:= TObjectList.create; // liste erzeugen
ObjectList.ownsObjects := true;
finalization
ObjectList.free; // alle objekte wieder freigeben
end.
Damit hättest du das alles schön in eine klasse gekapselt! Und so arbeitest du damit:
Delphi-Quellcode:
// Neues object erzeugen und der liste anfügen
TNamedObject.create('Peter');
// suchen und finden
objX := TNamedObject.findInstance('Peter');
if objX <> nil then ObjX.doSameMethod; // gefunden
..Habs aus dem kopf geschrieben, desshalb können fehler drinne sein...das prinzip sollte aber deutlich werden
mâxîmôv.
{KDT}