Irgendwie scheine ich gerade (5 Uhr nachts) ein Brett vor dem Kopf haben.. finde hier den Fehler nicht.... kann irgendwer mal nen Anstoß geben?
Gedacht ist das ganze bloß so, dass ich eine von TCanvas abgeleitete Klasse erstelle, der Ecke links oben den Mittelpunkt der Zeichenfläche als Ausgangspunkt nutzt.
Habe um ein entsprechendes Image zu haben auch gleich eine von TImage abgeleitete Klasse erstellt, die dann meine Canvas enthält.
Klassendefinitionen:
Implementation:
Wenn ich nun zur Laufzeit ein Image erzeuge und die Bounds gesetzt habe, kommt sobald ich darauf zeichnen möchte die Fehlermeldung ich könnte auf die Zeichenfläche nicht zeichnen.
Gedacht ist das ganze bloß so, dass ich eine von TCanvas abgeleitete Klasse erstelle, der Ecke links oben den Mittelpunkt der Zeichenfläche als Ausgangspunkt nutzt.
Habe um ein entsprechendes Image zu haben auch gleich eine von TImage abgeleitete Klasse erstellt, die dann meine Canvas enthält.
Klassendefinitionen:
Code:
type
TMidCanvas = class(TCanvas)
private
MidX, MidY : Integer;
public
Constructor Create( X, Y : Integer);
procedure MoveTo( x, y : Integer);
procedure LineTo( x, y : Integer);
end;
type TMidImage = class(TImage)
public
Canvas : TMidCanvas;
constructor Create( owner: TComponent);
end;
Implementation:
Code:
Constructor TMidCanvas.Create( X, Y : Integer);
begin
inherited Create;
MidX:= x;
MidY:= y;
end;
procedure TMidCanvas.MoveTo( x, y : Integer);
begin
inherited MoveTo( MidX + x, MidY - y);
end;
procedure TMidCanvas.LineTo( x, y : Integer);
begin
inherited LineTo( MidX + x, MidY - y);
end;
constructor TMidImage.Create( owner: TComponent);
begin
inherited Create(owner);
self.Canvas:= TMidCanvas.Create( Width div 2, Height div 2);
end;
Wenn ich nun zur Laufzeit ein Image erzeuge und die Bounds gesetzt habe, kommt sobald ich darauf zeichnen möchte die Fehlermeldung ich könnte auf die Zeichenfläche nicht zeichnen.
Zuletzt bearbeitet: