Einzelnen Beitrag anzeigen

Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Fehler durch SubProperties

  Alt 3. Jun 2007, 14:14
Du erstellst im Create deines MenuButtons die Attribute der SubClasses zusätzlich im constructor und gibst diese im destructor noch einmal frei. Deine SubClasses sind für die Erstellung und das Freigeben Ihrer Daten verantwortlich, nicht deine Klasse TMenuButton.

Delphi-Quellcode:

constructor TMenuButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  [...]
  FGlyph := TGlyph.Create;
  FGlyph.FPicture := TPicture.Create;
  [...]

constructor TGlyph.Create;
begin
  inherited Create;
  FPicture := TPicture.Create;
end;
Delphi-Quellcode:

destructor TMenuButton.Destroy;
begin
  FGlyph.FPicture.Free;
  FGlyph.Free;
  [...]

destructor TGlyph.Destroy;
begin
  FPicture.Free;
  inherited Destroy;
end;
Deine "Setter"-Proceduren überschreiben die Attribute der SubClasses (Bevel, Glyph, Caption). Du solltest diese besser zuweisen (zb. über Einzelattribute oder eine geeignte Assign-Methode)
Gruss Gremlin
  Mit Zitat antworten Zitat