Einzelnen Beitrag anzeigen

janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#1

Probleme mit TBitmap und Größenänderung

  Alt 12. Feb 2003, 15:51
Delphi-Quellcode:
unit TestBox;

interface

uses
   Classes,
   ExtCtrls,
   Graphics;

type
  TTestBox = class(TPaintBox)
  private
    { Private-Deklarationen }
  protected
    Background: TBitMap;
    first: boolean;
    { Protected-Deklarationen }
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure paint; override;
    procedure Resize; override;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure TTestBox.Resize;
begin
  Background.Width:=Width;
  Background.Height:=Height;
  background.Canvas.Ellipse(0,0,Width,Height);
  inherited Resize;
end;

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;

procedure TTestBox.Paint;
begin
  inherited paint;
  canvas.Draw(0,0,background);
end;

destructor TTestBox.Destroy;
begin
  background.Free;
  inherited Destroy;
end;

procedure Register;
begin
  RegisterComponents('Beispiele', [TTestBox]);
end;

end.
Warum kann ich das Bitmap beim Create verändern, im Resize-Ereigniss nicht? Da stegt er jedesmal mit einer "Zugriffsverletzung bei Adresse..." aus.
  Mit Zitat antworten Zitat