Einzelnen Beitrag anzeigen

OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Bild richtig laden und löschen?

  Alt 9. Mär 2013, 17:21
Hallo Jungs,

hab folgendes Problem. Ich hab zwei Buttons für das Laden und Löschen eines Bildes. Ich kann ein Bild wählen, wenn es nicht das richtige ist, wieder laden, also da klappt alles, wenn ich aber ein geladenes Bild lösche und dann wieder ein Bild wähle, kracht es, ein Speicherzugriffsfehler.

Ich vermute, dass das an der Freigabe des TFileStream (fs, ist FileStream und globale Variable) liegt. Kapier aber nicht, wie ich das richtig machen soll. Danke euch!

Delphi-Quellcode:
// Bild laden
procedure TForm2.PictureBitBtnClick(Sender: TObject);
var jpeg: TJPEGImage;
begin
  if fs<>nil then fs.Free;

  if OpenPictureDialog1.Execute then
  begin

    jpeg := TJPEGImage.Create;
    try
      jpeg.LoadFromFile(OpenPictureDialog1.FileName);

      if (((jpeg.Width>100) and (jpeg.Width<200)) or ((jpeg.Height>100) and (jpeg.Height<200))) then
      begin
        fs := TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead);
        PictureImage.Picture.Graphic := jpeg;
      end else MessageDlg('Das Bildformat entspricht nicht den Anforderungen!' + CHR(13) +
      'Bitte wählen Sie das Format von min. 100x100 und max. 200x200 Pixel.', mtError, [mbOK], 0);

    finally
      jpeg.Free;
    end;
  end;

end;
Und hier das löschen des Bildes

Delphi-Quellcode:
// Bild löschen
procedure TForm2.PictureDeleteBitBtnClick(Sender: TObject);
begin
  fs.Free;
  PictureImage.Picture := nil;
end;
  Mit Zitat antworten Zitat