Da du uns nur ein Fragment von deinem Code gibst, kann ich auch nur versuchen in deinem Code-Fragment etwas zu ändern.
Heißt also, meine Antwort kann durchaus nicht vollständig sein.
Ich setze jetzt mal voraus, dass der Benutzer Zahlen eingeben soll, die > 0 sind.
- Neu benutzte Befehle
StrToIntDef
- try .. finally für Object-Instanzen gesetzt
- überflüssige Variablen entfernt
- Öffnen und speichern erfolgt nur, wenn der Benutzer auch eine Datei auswählt!
Delphi-Quellcode:
var
TempJPeg: TJPegImage;
TempBitmap: TBitmap;
begin
// Wir prüfen ob die Eingaben akzeptiert werden können
if
( StrToIntDef( GrX.Text, 0 ) > 0 ) and
( StrToIntDef( GrY.Text, 0 ) > 0 )
then
begin
TempJPeg := TJPegImage.Create;
try
If
OpenPictureDialog1.Execute
then
begin
TempJPeg.LoadFromFile( OpenPictureDialog1.Filename );
TempBitmap := TBitmap.Create;
try
TempBitmap.PixelFormat := pf24Bit;
TempBitmap.Width := StrToInt( GrX.Text );
TempBitmap.Height := StrToInt( GrY.Text );
TempBitmap.Canvas.StretchDraw( Rect( 0, 0, TempBitmap.Width, TempBitmap.Height ), TempJPeg );
TempJPeg.Assign( TempBitmap );
If
SaveDialog1.Execute
then
begin
TempJPeg.SaveToFile( SaveDialog1.Filename );
Showmessage( 'Ihr Bild wurde gespeichert!' );
end;
finally
TempBitmap.Free;
end;
end;
finally
TempJPeg.Free;
end;
end
else
ShowMessage( 'Die Eingaben für X und Y sind ungültig!' );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)