> > TObjectList eller TList skulle begge kunne bruges. TObjectList ejer
> > objekterne og frigør dem, når ObjectList frigøres, hvorimod man selv
> > skal gøre det med TList.
>
> Men ingen af de 2 kan bruges på den måde jeg gerne vil, deres Add metode
kan
> ikke det jeg vil.
Deres Add metode returnerer (desværre) ikke en pointer til det nye objekt,
og den danner heller ikke objektet automatisk.
Det du vil opnå er en forkortet udgave af
var
newNetWork: TNetWork;
begin
...
newNetWork:=TNetWork.Create;
HKsip.NetWorks.Add(newNetWork);
with newNetWork do
begin
DisplayName:='Viggo';
...
end;
end;
Nu synes jeg personligt at ovenstående kode er ganske fin til formålet, men
hvis det ønskes kortere kan det gøres således:
begin
with HKsip.NetWork..items[HKsip.NetWork.Add(TNetWork.Create)] as TNetWork
do
begin
DisplayName:='Viggo';
...
end;
end;
hvor HKsip.NetWork er af typen TList (evt TObjectList).
Personligt ville jeg dog foretrække den øverste version
Et ANDET alternativ kunne være at lave TNetWork's creator så den spiser dine
argumenter...
TNetWork.Create(ADisplayName: String; ANetWorkName: String; AServer: String;
AUsername: String; APassword: String);
begin
DisplayName:=ADisplayName;
...
end;
og så bare bruge
HKsip.NetWork.Add(TNetWork.Create('Viggo', 'Musimi', 'musimi.dk', 'Viggo',
'****'));
(.Create kan selvfølgelig overrides til at tage forskellige antal/typer af
argumenter)
/Nic