Article View: be.comp.programming
Article #11626Re: Delphi Create / free (newbie vraagje)
From: KLinZ
Date: Sun, 27 Jan 2002 21:51
Date: Sun, 27 Jan 2002 21:51
56 lines
2501 bytes
2501 bytes
"F Cocquyt" <Frederik.cocquyt@NOSPAMpandora.be> wrote in message
news:uPW48.4490$%Y.1056550948@hebe.telenet-ops.be...
> Hallo,
>
> Ik heb volgend vraagje:
> Ik creeοΏ½r een random aantal series in een TDBChart. als volgt:
>
> var
> teller: integer;
> MijnSeries:TBarseries;
> begin
> ....
> for teller:=1 to DM.DaSPloegen.RecordCount do
> begin
> MijnSeries := TBarSeries.Create(Self);
> end;
>
> .....
>
> Ik zou deze series bij het sluiten van mijn form willen vrijgeven, maar
> indien ik zeg
> MijnSeries.free worden deze niet allemaal vrijgegeven (of heb ik het
> verkeerd voor. ik krijg hier wel een acces violation error door)
> Hoe zorg ik er voor dat ze wel allemaal worden vrijgegeven?
>
Je wijst steeds een nieuwe instantie van het object aan dezelfde
objectpointer toe. Je moet echter elke instantie van het object bijhouden.
Omdat je de parameter 'self' aan de constructor meegeeft hoef je niet te
free'en. Het parent object (in dit geval TDBChart) zorgt er dan voor dat de
child objecten opgeruimd worden. Als je per se zelf wilt free'en kun je het
zo oplossen:
var olist: TList;
MijnSerie: TBarseries;
olist:=TList.Create;
DM.DaSPloegen.First;
while not DM.DaSPloegen.EOF do
begin
MijnSerie:=TBarSeries.Create(nil); // hier nil meegeven ipv self
TList.Add(MijnSerie);
end;
Let hier ook op het gebruik van de while not ...eof do i.p.v. de for-loop.
Dit geeft minder kans op fouten.
Bij het free'en kun je dan dit doen:
for i:=0 to List.Count-1 do
TBarSeries(List[i]).Free;
Joris.
Technical Details
Message-ID:
<a31sub$152bpp$1@ID-79907.news.dfncis.de>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!c71152.upc-c.chello.NL!not-for-mailReferences:
<uPW48.4490$%Y.1056550948@hebe.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,15ac39b62e0a474e X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-01-27 13:54:22 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!c71152.upc-c.chello.NL!not-for-mail From: "KLinZ" <klinz@hetnet.nl> Newsgroups: be.comp.programming Subject: Re: Delphi Create / free (newbie vraagje) Date: Sun, 27 Jan 2002 22:51:39 +0100 Lines: 59 Message-ID: <a31sub$152bpp$1@ID-79907.news.dfncis.de> References: <uPW48.4490$%Y.1056550948@hebe.telenet-ops.be> NNTP-Posting-Host: c71152.upc-c.chello.nl (212.187.71.152) X-Trace: fu-berlin.de 1012168459 38874937 212.187.71.152 (16 [79907]) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000