Also ich hab ein Programm geschrieben, dass mit einem Canvas auf ein Bild schreibt.
Jetzt wollte ich bei jedem schreiben das Bild davor in einem dynamischen Array speichern.
Sobald das Ende erreicht ist, soll der Button abgestellt werden.
Leider komme ich da etwas durcheinander.
Mein Code bisher:
Delphi-Quellcode:
//Auf das Bild schreiben
procedure TForm1.BT_WriteClick(Sender: TObject);
var i,z,x,y: integer;
begin
SetLength(Bitmap2, High(Bitmap2) + 1);
Bitmap2[High(Bitmap2)] := TPicture.Create;
Bitmap2[High(Bitmap2)].Bitmap.Assign(Image1.Picture);
inc(Bitmap2X);
...
...
end;
//Undo, Redo
procedure TForm1.BT_UndoClick(Sender: TObject);
begin
if Bitmap2X > Low(Bitmap2) then
begin
Image1.Picture.Bitmap.Assign(Bitmap2[Bitmap2X-1]);
Bitmap2X := Bitmap2X - 1;
end
else
BT_Undo.Enabled := false;
end;
procedure TForm1.BT_RedoClick(Sender: TObject);
begin
if Bitmap2X < High(Bitmap2) then
begin
Image1.Picture.Bitmap.Assign(Bitmap2[Bitmap2X]);
Bitmap2X := Bitmap2X + 1;
end
else
BT_Redo.Enabled := false;
end;
Wenn das Fenster geschlossen wird:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: integer;
begin
for i := Low(Bitmap2) to High(Bitmap2) do
Bitmap2[i].Free;
end;