Delete - Mi 21.07.04 13:57
Titel: Konstruktor/Destruktor - Wie gehts?
Es geht um die zwei folgenden Klassen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TAmpel = class pos: TPoint; procedure SetFarbe(neueFarbe:TAmpelFarbe; cv:TCanvas); function GetFarbe(cv:TCanvas): TAmpelFarbe; end;
type TAmpelSchaltung = class Ampel: Array[1..3] of TAmpel; procedure Schalten(cv: TCanvas); end; |
Wie deutlich zu erkennen beherbergt die Klasse TAmpelSchaltung drei Instanzen der Klasse TAmpel. Nun wäre es ja wünschendswert, wenn beim Aufruf von
Delphi-Quelltext
1:
| AmpelSchaltung1 := TAmpelschaltung.create; |
auch automatisch die drei Instanzen von TAmpel erzeugt bzw. beim Aufruf von
auch wieder freigegeben werden.
Ich hab schon allerhand mit virtual, override und inherited herumprobiert, aber so richtig geklappt hat es noch nicht, was auch daran liegt, dass ich es bisher nur sehr schemenhaft vertanden habe.
Mir wäre aber sehr geholfen, wenn jemand einfach den obigen Code nach besagten Anforderungen ergänzen würde.
maxk - Mi 21.07.04 14:14
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:
| type TAmpel = class pos: TPoint; procedure SetFarbe(neueFarbe:TAmpelFarbe; cv:TCanvas); function GetFarbe(cv:TCanvas): TAmpelFarbe; end;
type TAmpelSchaltung = class Ampel: Array[1..3] of TAmpel; procedure Schalten(cv: TCanvas); constructor Create; destructor Destroy; end;
constructor TAmpelSchaltung.Create; begin Ampel[1]:=TAmpel.Create; end;
destructor TAmpelSchaltung.Destroy; begin Ampel[1].Free; end; |
// Edit: Ich sehe gerade, dass es sich um drei Ampeln handelt, aber das dürfte ja eigentlich kein Problem sein ;)