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...