Ok, after working with TShape, I need to clean my “Shape1” from Lines and Text.
And also how to copy everything in “Shape1” into “Shape2” ?
Thanks B4 ^o^
type
TShape = class(ExtCtrls.TShape); //interposer class
TForm1 = class(TForm)
Shape1: TShape;
Shape2: TShape;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// Draw some text on Shape1 := TShape
Shape1.Canvas.Font.Name :='Arial';// set the font
Shape1.Canvas.Font.Size :=20;//set the size of the font
Shape1.Canvas.Font.Color:=clBlue;//set the color of the text
Shape1.Canvas.TextOut(10,10,'1999');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// Copy everything from Shape1 to Shape2 (make a duplication)
// How to do it ?
showmessage('copy Shape1 into Shape2');
end;
End.
Following pseudo-code makes a copy of
SourceShapecanvas content to theTargetShapecanvas, but only until theTargetShapeis refreshed:To clear the previously copied content, you can use the following:
To keep your drawing persistent you need to implement your own
OnPaintevent, in which whenever it fires, copy the current canvas content from the source to target using theCopyRectmethod like shown above.But the question is then, why to use a
TShapecontrol at all. It would be better to useTPaintBoxand draw your stuff by yourself including the shapes that are drawn byTShapecontrol.