Einzelnen Beitrag anzeigen

WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#1

Konzeptfrage Speicher freigeben

  Alt 11. Sep 2008, 11:51
Hallo Gemeinde,

ich hatte vor geraumer Zeit ein Problem mit folgendem Code (sinngemäß):

Delphi-Quellcode:

try
  //Abfrage DB-> Pfad Bilddatei holen
  if zquery1.RecordCount=1 then
  Begin
    qpfad:=qpfad+zquery1.fieldbyname('file_name_org').AsString; //Quellpfad wird gesetzt
    if DownloadFile(qpfad, filepath+'tmp.jpg')=true then //die Datei wird temporär heruntergeladen
      Begin
        bild:=TJPEGImage.create; //bild:TGraphic
        bild.LoadFromFile(filepath+'tmp.jpg');
        NGrPFert2AuftrVw_det.Cell[6,0].ObjectReference:=bild;
        NGrPFert2AuftrVw_det.Repaint;
      end
      else
        NGrPFert2AuftrVw_det.Cell[6,0].Clear;
  end;
except
end;
Es soll eine DB nach einem Pfad zu einem jpg-file durchsucht werden und dieses (nachdem es zwischengespeichert wurde) in ein
Grid (NextGrid) geladen. Funktioniert soweit auch gut. Nun kann ich jedoch "bild" nicht wieder freigeben, da der Eintrag im Grid nur eine Referenz ist. Also dachte ich mir, dass ich einfach beim Wechsel in ein anderes Modul (also auch aus einer völlig anderen Prozedur heraus (sogar in einer anderen Unit)) "bild" freigebe. Auch das funktionierte soweit. Dann bekam ich jedoch ständig Fehler "Zugriffsverletzung in Modul dcc70.dll" (muss nicht im Zusammenhang stehen), sodass ich die "Bild-Funktion" erstmal auskommentiert hatte. Nun möchte ich mich der Problematik wieder annehmen und würde gern mal eure Meinung zum beschiebenen Konzept wissen. Mir geht es dabei auch darum, eine Möglichkeit zu erarbeiten Stringslisten über die Grenzen einer Prozedure hinweg zu speichern (also ähnlich, wie die vorherige Problematik).

MFG
Steffen
  Mit Zitat antworten Zitat