Einzelnen Beitrag anzeigen

R56

Registriert seit: 8. Mai 2012
8 Beiträge
 
#1

Undo Redo: Bilder

  Alt 8. Mai 2012, 19:27
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;
  Mit Zitat antworten Zitat