Forum: Object-Pascal / Delphi-Language
by uligerhardt,
24. Sep 2015
Genau. Und das muss jetzt in das
if SaveDialog1.Execute then
begin
// hier <<<<<<<<<<<<<<
end;
rein, weil es nur ausgeführt werden soll, wenn der Benutzer den Dialog mit OK beendet. Dann noch SaveDialog1.Filename verwenden und gut ist's.
(Vorausgesetzt, PaintBox.Canvas enthält immer noch, was es soll. Davon bin ich nach wie vor nicht überzeugt.)
Forum: Object-Pascal / Delphi-Language
by uligerhardt,
24. Sep 2015
Meinst du Flickern?
Naja, dann geht dein oben geposteter Code schon in die richtige Richtung. Nur was du hinter if SaveDialog1.Execute then hast, ist... überarbeitungsbedürftig. :mrgreen:
Forum: Object-Pascal / Delphi-Language
by uligerhardt,
24. Sep 2015
Kann sein. Seit Vista/Windows 7 löscht das Betriebssysten den Bildschirm nicht mehr so oft. Persistent ist ein PaintBox-Canvas trotzdem nicht.
Mit dem SaveDialog fragst du den Benutzer nach dem Dateinamen. Mit Bitmap.SaveToFile speicherst du dann unter diesem Namen (falls SaveDialog.Execute True zurückgegeben hat).
Forum: Object-Pascal / Delphi-Language
by uligerhardt,
24. Sep 2015
Wenn du nur über PaintBox1.Canvas auf die Paintbox malst, kannst du gar nichts speichern, weil das alles beim kleinsten Ding weg ist. Ändere mal zur Laufzeit die Größe der Form o.ä und schon ist alles weg, was du vorher gemalt hast.
Du könntest z.B. stattdessen auf ein Bitmap malen und das auch in der PaintBox anzeigen. Ein Bitmap kannst du mit SaveToFile speichern.