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;
...
...