Hallo alcaeus,
was ein bißchen Code doch ausmacht. Jetzt habe ich Dich verstanden.
Ich würde das mit dem Index vergessen und tatsächlich die Collection
durchlaufen bis ich die richtige Option gefunden habe. Wenn Du nicht
gerade 1000sende Optionen gespeichert hast dürfte man den Geschwindigkeitsnachteil
nicht merken. Das casten dauert bestimmt länger.
Dafür würde ich TJsCollection oder TmxJsCollection wie folgt erweitern.
Delphi-Quellcode:
...
function GetOptionItem(aOptionname : String) : TOptionItem;
...
property Option[aOptionname : String] TOptionsItem read GetOptionItem;
...
function TJsCollection.GetOptionItem(aOptionname : String) : TOptionsItem;
var
iCnt : Integer;
_Optionname : String;
begin
Result:=Nil;
_Optionname:=AnsiUpperCae(aOptionname);
For iCnt:=0 to Count-1 do
begin
// evt muss hier noch nach TOptionsItem gecastet werden
If AnsiUpperCase(Items[iCnt].Optionname)=_Optionname then
begin
Result:=Items[iCnt];
Exit;
end;
end;
end;
Damit kannst Du die Option über den Optioname ansprechen