Ich habe den Fehler ??? gefunden.
In wie weit das ein fehler ist könnte mir mal bitte jemand erklären.
Wenn man jetzt hier schaut
Delphi-Quellcode:
procedure TAnimateGif.GetGifFrameDelays(InGifImage: Cardinal; InFrameCount: UINT;
var OutFrameDelay: TOutFrameDelay);
var
PROP: TProp;
PropCount: integer;
Size: integer;
PropSize: UINT;
PropItem: TPropertyItem;
begin
Size := 0;
// Datengröße vom EXIF-Tag
// "PropertyTagFrameDelay" ermitteln
if GDIP_GetPropertyItemSize(InGifImage, PropertyTagFrameDelay, PropSize) = S_OK then
begin
// Daten auslesen
if GetPropertyItem(InGifImage, PropertyTagFrameDelay, PropSize, PropItem) = S_OK then
begin
// PropertyTyp ermitteln
case PropItem.type_ of
PropertyTagTypeByte:
Size := 1;
PropertyTagTypeShort:
Size := 2;
PropertyTagTypeLong:
Size := 4;
end;
// Array zur Aufnahme der
// Pausenzeiten dimensionieren
SetLength(OutFrameDelay, (InFrameCount - 1));
end;
end;
end;
kann man sehen das ich das PropItem hier deklariert habe.
PropItem: TPropertyItem;
Diese habe ich nun herausgenommen und in meine Classe gesteckt.
Delphi-Quellcode:
TAnimateGif = class(TComponent)
private
FSelectedIndex: Integer;
PropItem: TPropertyItem;
Jetzt sag mir mal jemand warum das so ein Problem verursacht hat das es nach
Delphi-Quellcode:
if GetPropertyItem(GifImage, PropertyTagFrameDelay, PropSize, PropItem) = S_OK then
begin
jedes Mal gekracht hat und alle Variablen sich verändert haben.
gruss