Autor Beitrag
reimo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mi 04.02.04 10:14 
Hi,

kann mir jemand sagen, ob dieser Code halbwegs richtig ist??
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
TTest = class
    test1: string;
    test2: string;
    test3: string;
    test4: string;
end;

XXX = class(TForm)
   List: TListBox
.....

   test: array[1..10of TTest;
end;

// muss ich fuer jedes Object im array den constructor aufrufen, oder übernimmt das automatisch der constructor der classe XXX

XXX.FormCreate
begin
for i := 1 to 10 test[i] := TTest.Create;
end;

.....
....

// wird in der folgenden function ein Pointer auf die classe test[i] gesetzt, oder wird eine kopie dieser erstellt ????

procedure XXX......
begin
   List.Items.AddObject( IntToStr(i), TObject(test[i]) );
end;

// muss ich den speicher von test[] selbst freigeben, oder übernimmt es Delphi für mich???
// muss ich beim Freigeben des Speichers auf etwas achten, da ja(falls) die Items/Objecte  von "List" darauf zeigen? 
procedure XXX.FormClose
begin
   for i := 1 to 10 do test[i].Free;
end;


danke im voraus
reimo

Moderiert von user profile iconUGrohne: Delphi-Tags eingefügt
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mi 04.02.04 11:11 
reimo hat folgendes geschrieben:
// muss ich fuer jedes Object im array den constructor aufrufen, oder übernimmt das automatisch der constructor der classe XXX

Dein Job.


Zitat:
// wird in der folgenden function ein Pointer auf die classe test[i] gesetzt, oder wird eine kopie dieser erstellt ????

Es wird nur die Referenz (=Zeiger) kopiert. Die Instanz (=Objekt) bleibt unberührt. Es zeigen jetzt nur 2 Referenzen auf ein und dasselbe Objekt.


Zitat:
// muss ich den speicher von test[] selbst freigeben, oder übernimmt es Delphi für mich???

Dein Job.

Zitat:
// muss ich beim Freigeben des Speichers auf etwas achten, da ja(falls) die Items/Objecte von "List" darauf zeigen?

LisiBox.Items speichert nur die Referenzen. Es gibt den Speichern nicht frei. Außnahme ist TObjectList, der du beim erzeugen angebenen kannst, ob die ObjectList die Objekte "besitzt".

_________________
Ist Zeit wirklich Geld?
reimo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mi 04.02.04 11:23 
passt!! danke für die antwort

mfg
reimo