![]() |
TGPGraphics.DrawImage
Huhu,
ich habe ein Problem in der TGPGraphics.DrawImage function. Zumindest glaube ich das es dort ist. Ich nutze einige grafische Komponenten in meinem Programm. Von TMS, BuisnessSkinform, Jedis usw... Seit neustem bekomme ich beim beenden meines Programms folgende Fehlermeldung: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Access violation at address 00579FFE in module 'Project.exe'. Read of address 03992DE4' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe --------------------------- Wenn ich dann Anhalte und mir von Delphi die verantwortliche Stelle zeigen lasse, werde ich zu:
Delphi-Quellcode:
der unit AdvGDIP geleited.
function TGPGraphics.DrawImage(image: TGPImage; x, y: Integer): TStatus;
var nImage: GpImage; begin if Assigned(Image) then nImage := Image.nativeImage // <- das markiert Delphi extra else nImage := nil; Result := SetStatus(GdipDrawImageI(nativeGraphics, nimage, x, y)); end; Aber wie weiter? Es bleibt wohl was im Speicher hängen, wenn ich das richtig interpretiere. Aber wie finde ich heraus was? Also von welcher Komponente? Im Programm selbst läuft alles wie es soll. Erst beim Beenden kommt das Problem. Gibt es einen Befehl einfach restlos alles vom Programm im Speicher zu entfernen? Gruß, Andreas |
AW: TGPGraphics.DrawImage
Du versuchst auf Image zuzugreifen währen dieses schon freigegeben wurde. ??
gruss |
AW: TGPGraphics.DrawImage
Ist das korrenspondierende TGPGraphics- Objekt vielleicht schon freigegeben worden ...
|
AW: TGPGraphics.DrawImage
Zitat:
gruss |
AW: TGPGraphics.DrawImage
Dann schreibs doch :wink:
ich hatte es schon vermutete, Du kennst die Units ja eh sicher auswendig. |
AW: TGPGraphics.DrawImage
Das ist ja das Problem... ich weiß nicht welches Objekt das verursacht...
|
AW: TGPGraphics.DrawImage
Zitat:
bzw.. (Bummi) das Objekt welches mit TGPGraphics korrenspondiert ;) gruss |
AW: TGPGraphics.DrawImage
Woran sehe ich das?
Ich hab mehrere Objekte die das nutzen. Alle manuell auskommentieren, wäre arg aufwändig (Handelt sich um ne Art Kalender mit dynamisch erzeugten Grafiken für Events). |
AW: TGPGraphics.DrawImage
Zitat:
Ist BlaBLa nun nil oder nicht? Wenn du die anwendung beendest. Danach darfst du nicht mehr auf DrawImage zugreifen. image scheint zu dem Zeitpunkt auch noch nicht freigegeben worden zu sein. gruss |
AW: TGPGraphics.DrawImage
Wenn ich das wüsste...
TGPGraphics.create wird von irgend einer Komponente aufgerufen. Oder auch von mehreren, ich weiß es nicht, weil ich selbst nur auf die Komponenten zugreife. Also zum Beispiel so in der Art:
Delphi-Quellcode:
Und das für mhrere Komponenten (verschiedene Kalenderansichten). Irgendeine davon greift auf TGPGraphics zurück... warscheinlich sogar alle. Ich weiß aber leider nicht welche die Exception auslöst.
with AdvSmoothTimeLine1.TimeLineIndicators.Add do
begin Shape := isPicture; Position := StrToDate(ASQLite3Query3.FieldByName('datum').AsString); hint := ASQLite3Query3.FieldByName('name').AsString; if FileExists(form1.programmdirectory.Caption+'\..\img\timeline\hs.png') then Picture.LoadFromFile(form1.programmdirectory.Caption+'\..\img\timeline\hs.png') end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz