please disregard my last note about "avoiding the sanity check"
On Mon, Apr 8, 2013 at 1:52 PM, dmitry boyarintsev < skalogryz.li...@gmail.com> wrote: > You can always use functions, to fight typecasting. > > function GetMyObject(dic: TStrings; const nm: string): TMyObject; > var > i : integer; > begin > if not Assigned(dic) then begin Result:=nil; Exit; end; > i:=dic.indexof(nm); // replace with IndexOfName if necessary > if (i<0) or (i>=dic.Count) or not (i.Objects[i] is TMyObject) then > Result:=nil > else Result:=TMyObject(i.Objects[i]); // not using "as" , since "is" has > already been used > end; > > Of course, people would use ClassHelpers these days to have nice syntax > and avoid the sanity check. > > thanks, > Dmitry > > > On Mon, Apr 8, 2013 at 1:42 AM, Marius2 <fpclaza...@home.nl> wrote: > >> Thanks Dimitri, >> >> Yes, I have used it lots of times and its really the last choice if theres >> something available like the objectdictionary. In this case the dict is >> also >> the owner of the objects, it saves me the continious ugly typecasting, >> takes >> care of the extra administration with freeing objects and all the >> additional >> troubles you get over time with this solution (its not as bad as i'm >> telling >> now). In other words tstrings.objects are working fine, but i find it a >> bad >> strategy if you have to use it in flatout in the whole application. >> >> I'm curious how to rewrite/solve dictionaries, indexed list and even >> sorted >> strings.objects to a neat solution while (if possible) working with both >> delphi and fpc/laz. >> >> Greetings, >> Marius >> >> >> >> >> >> -- >> View this message in context: >> http://free-pascal-general.1045716.n5.nabble.com/Generics-how-to-rewrite-TOjectDictionary-tp5714029p5714031.html >> Sent from the Free Pascal - General mailing list archive at Nabble.com. >> _______________________________________________ >> fpc-pascal maillist - fpc-pascal@lists.freepascal.org >> http://lists.freepascal.org/mailman/listinfo/fpc-pascal >> > >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal