Entwickler-Ecke
Multimedia / Grafik - Grafik mit OpenDialog mehrfach laden?
AlexII - So 10.03.13 01:02
Titel: Grafik mit OpenDialog mehrfach laden?
Hallo Delphianer,
hab hier ein Problem, ich kann nicht Bilder mehrfach hintereinander laden. Ich meine eins, wenn das nicht schön ist, dann anderes usw. Es liegt wohl daran, dass fs belegt ist. fs ist ein FileStream was an anderer Stelle in die DB eingefügt wird, deswegen kann ich das nach dem Laden nicht! frei geben. Wenn ich das aber vor dem Laden des Bildes frei gebe bekomme nen Speicherzugriffsfehler. Keine Ahnung was ich machen soll, quelle mich schon den ganzen Tag.
Wäre für jede Hilfe dankbar.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm2.PictureBitBtnClick(Sender: TObject); var jpeg: TJPEGImage; begin 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.Assign(jpeg); end;
finally jpeg.Free; end; end;
end; |
Delete - So 10.03.13 03:39
- Nachträglich durch die Entwickler-Ecke gelöscht -
Mathematiker - So 10.03.13 09:13
Hallo,
was zwingt dich eigentlich, den Filestream schon in der Bildladeroutine zu erzeugen.
Du kannst doch einem String openpicturedialog1.filename übergeben und erst, wenn Du Dir mit dem Bild sicher bist, den Filestream erzeugen, also
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| var bildname:string; ... procedure TForm2.PictureBitBtnClick(Sender: TObject); var jpeg: TJPEGImage; begin if OpenPictureDialog1.Execute then begin jpeg := TJPEGImage.Create; try jpeg.LoadFromFile(OpenPictureDialog1.FileName); bildname:=''; if (((jpeg.Width>100) and (jpeg.Width<200)) or ((jpeg.Height>100) and (jpeg.Height<200))) then begin bildname := OpenPictureDialog1.FileName; PictureImage.Picture.Assign(jpeg); end; finally jpeg.Free; end; end; end; ... fs := TFileStream.Create(bildname, fmOpenRead); |
Außerdem kannst Du so auch am leeren String erkennen, ob das Bild den gewünschten Abmessungen entspricht.
Beste Grüße
Mathematiker
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!