Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#23

AW: Array of Integer und crash

  Alt 19. Mär 2017, 21:27
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
  Mit Zitat antworten Zitat