Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Nutzer zwingen etwas zu wiederholen(mit If)?

  Alt 3. Mär 2010, 22:01
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 Delphi-Referenz durchsuchenStrToIntDef
- 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)
  Mit Zitat antworten Zitat