Avatar billede anfu Nybegynder
09. oktober 2001 - 20:11 Der er 2 kommentarer og
1 løsning

Object arrays

Jeg forsøger at skifte fra VB (som jeg ikke er god til) til Delphi (som jeg heller ikke er god til).
I VB kan man lave collections (object arrays) ret simpelt fx med syntaksen:

Dim MyCol as New Collection //svarer til delphi create
MyCol.add MyObject //en kopi indsættes, ikke pointer!
set MyObject = Nothing //nu slettes selve MyObject, men det findes stadig i MyCol, og jeg kan til enhver tid have adgang til MyObject.Whatever properties gennem MyCol.item(i).Whatever

Man skal ikke bekymre sig om at fortælle MyCol på forhånd hvilken type objekter den får, ejheller skal man bekymre sig om antallet af instances som assignes til kollektionen.

Jeg kan i Delphi (jeg har \'kun\' Delphi3) lave noget i retning af:

var
MyCol: Array blahblah of TMyObject

og så hælde mine objekter derind i. Når mine objecter free\'s, så ryger arrayet også, pga at Delphi i udtalkt grad bruger pointere. Er der en måde at anvende fx TList eller TCollection i stedet, så dette undgås?
Jeg hart forøsgt mig med TList og TCollection, men da min grundlæggende forståelse af OOP-modellen er begrænset, har det været uden succes.

Kan en eller anden give mig et eksempel hvori TCollection/TCollectionItem demonsters MEGET SIMPELT (og kommenteret), og om muligt fortælle mig om jeg kan anvende disse til det ovenfor beskrevne?

Er der en bog som er bedre end Delphi In A Nutshell, når man som jeg har en neanderthalhjerne?

På forhånd tak.

AnFu
Avatar billede martinlind Nybegynder
09. oktober 2001 - 20:18 #1
Du kan enten bruge en TObjectList, TStringList eller et Array eller et OpenArray, mulighederne er uendelige

Type

TMyArr = Array[1..100] of MyObject;

VAR
  FArr : TMyArr;
  L : TObjectList;

begin
  L := TObjectList.Create(FALSE);
  L.Add(EtObject);
  L.Free;
end;


Kig i hjælpen om TObjectList
/Martin
Avatar billede anfu Nybegynder
09. oktober 2001 - 20:30 #2
Hmmmmm, når selve objektet free\'s er kollektionen så stadig intakt?
Avatar billede martinlind Nybegynder
09. oktober 2001 - 21:36 #3
Ja !

L[x].Free;

Kan du godt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester