Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2
  Alt 12. Feb 2003, 16:11
Mal ehrlich, dass es überhaupt jemals gut geht ist schon verwunderlich, sorry. Folgender Abschnitt:
Delphi-Quellcode:
constructor TTestBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Background:= tbitmap.Create;
  Background.Width:=Width;
  Background.Height:=Height;
  background.Canvas.Ellipse(0,0,Width,112);
end;
Als erstes rufst Du bereits inherited... auf, was eigentlich okay ist, aber intern wird auch sofort Resize aufgerufen. Dein Resize nutzt dann background, was noch nicht initialisiert ist (also nil) -> Zugriffsverletzung,
Delphi-Quellcode:
procedure TTestBox.Resize;
begin
  Background.Width:=Width;
  Background.Height:=Height;
  background.Canvas.Ellipse(0,0,Width,Height);
  inherited Resize;
end;
Ändere Dein Create wie folgt, und alles sollte laufen
Delphi-Quellcode:
constructor TTestBox.Create(AOwner: TComponent);
begin
  Background:= tbitmap.Create;
  inherited Create(AOwner);
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat