Thema: Delphi Canvas ändern?

Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Canvas ändern?

  Alt 21. Jul 2007, 18:05
Hi,
mein Problem ist folgendes:
Ich will die Canvas um ein paar nützliche Funktionen erweitern und diese dann bei meiner Form verwenden können.
Doch das funzt leider nicht, es kommt immer folgende Exception, wenn ich auf die Canvas zugreifen will:
Zitat:
Bild/Leinwand erlaubt kein Zeichnen.
So sieht meine Unit aus (vereinfacht):
Delphi-Quellcode:
unit MyUnit;

interface

uses
  {...}

type
  TMyCanvas = class(TCanvas)
    {...}
  end;

  TMyForm = class(TForm)
    {...}
    procedure DoSomething;
  private
    ACanvas: TMyCanvas;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Canvas: TMyCanvas read ACanvas write ACanvas;
  end;

var
  MyForm: TMyForm;

implementation

{$R *.dfm}

constructor TMyForm.Create(AOwner: TComponent);
begin
  inherited;
  ACanvas := TMyCanvas.Create;
end;

destructor TMyForm.Destroy;
begin
  ACanvas.Free;
  inherited;
end;

procedure TMyForm.DoSomething;
begin
  Canvas.MoveTo(0, 0); // hier krachts
end;

end.
Meine Frage ist nun:
Warum gibt es diese Exception und wie kann ich es ändern damit es klappt?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat