Thema: AnimatePNG

Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#34

AW: AnimatePNG

  Alt 23. Mär 2017, 18:19
Hmm..

Habe mir deinen Src mal vorgenommen..

Da ich nur Delphi 6 habe, musste ich die ganzen Regionen entfernen, deine File.. Sachen strkt auf WideString und W-Funktionen umstellen und siehe da, läst sich unter D6 kompilieren, starten und debuggen..

Erster Fehler:

Delphi-Quellcode:
procedure TAnimateGif.LoadGif;
var
  FrameDelay: TFrameDelay;
  DC: HDC;
  GuidFDT: TGUID;
begin

  gp.FrameCount := 0;

  if GetGifFrameCount(gp.GifImage[SelectedIndex], gp.FrameCount) = S_OK then
  begin
    If (gp.FrameCount - 1) = 0 then
    begin
      SetLength(FrameDelay, 0); // <- Hier das Array löschen

      FrameDelay[0] := 0; // <- Aber hier auf das erste (nicht vorhanden) Element zugreifen!
      FrameLoopCount := 0;
      LoopCount := FrameLoopCount + 1;

      CurGifPlayInfo.GifDelay := lFrameDelay[0]; // Und wo kommt das array nun schon wieder her (Ich weis GLOBAL)
      CurGifPlayInfo.GifFrame := 1;
      CurGifPlayInfo.GifFrames := gp.FrameCount;
      CurGifPlayInfo.GifLoop := LoopCount - 1;
      CurGifPlayInfo.GifLoops := FrameLoopCount;
      // Bild anzeigen
      DC := GetDC(GraphicContainer);
      DrawGifFrame(gp.GifImage[SelectedIndex], GuidFDT, ShowFrame, DC);
    end
    else
    begin
Wenn ich nun das korrigiert habe (setlength auf 1) kann ich das ganze starten.

Ich kann dann noch sehen, dass das Formular erstellt wird und das erste GIF dort angezeigt wird.
Danach erhalte ich 4 Exceptions und die App schmiert ab .

Da ich auf alle deine Funktionen Haltepunkte gesetzt hatte, außer auf Result := SKAERO_DefWindowProc(WinHandle, Msg, wP, lP) da dies ja andauernd auch durch steppen immer wieder aufgerufen wird, konnte ich erkennen, dass die Exception aus deiner DLL kommen!
Alles andere läuft durch.

Zu meinem System:
Windows 8.1 Home.
Delphi 6 Prof

Da ja auch andere beim Starten direkt die Exceptions um die Ohren gehauen bekommen, gehe ich von einem Bug auf der anscheinend nur bei Dir nicht auftritt...
  Mit Zitat antworten Zitat