![]() |
Array of Integer und crash
Ich hab ein Array of Integer in einer Procedure definiert.
Delphi-Quellcode:
wenn ich nun das Array redimensioniere dann kracht es mal wieder.
type
TOutFrameDelay = array of Integer; POutFrameDelay = ^TOutFrameDelay; .... procedure GetGifFrameDelays(InGifImage: Cardinal; InFrameCount: UINT; var OutFrameDelay: TOutFrameDelay);
Delphi-Quellcode:
SetLength(OutFrameDelay, InFrameCount - 1);
SetLength müsste so doch auch mit Integer funktionieren oder nicht? Was läuft hier wieder schief? LOL Bin wieder mal die ganze Nacht wach wird zeit für's Bett.. hehehehehee gruss |
AW: Array of Integer und crash
Moin...8-)
Was spricht gegen TList<Integer>. Da hast du das Pointer geschubse nicht. :wink: |
AW: Array of Integer und crash
Zitat:
Eigentlich müsste das doch funktionieren frage mich nur warum nicht. gruss |
AW: Array of Integer und crash
Zitat:
|
AW: Array of Integer und crash
Delphi-Quellcode:
Habe gelesen das man hier den var Parameter übergeben soll wenn eine Type Deklaration für das Array angelegt wurde.
var OutFrameDelay: TOutFrameDelay
Aber auch wenn ich diesen entferne kracht es. Was anderes fällt mir da jetzt nicht ein. Das Image ist korrekt, der FrameConter ist 14 also auch korrekt. Übrig bleibt dann nur das OutFrameDelay. gruss |
AW: Array of Integer und crash
Zitat:
|
AW: Array of Integer und crash
Zitat:
Delphi-Quellcode:
procedure GetGifFrameDelays(InGifImage: Cardinal; InFrameCount: UINT;
var OutFrameDelay: TOutFrameDelay);
Delphi-Quellcode:
Jetzt brat mir einer nen Storch warum geht das nicht.
procedure LoadGif;
var FrameCount: UINT; FrameDelay: TOutFrameDelay; begin FrameCount := 0; if GetGifFrameCount(gp.GifImage, @GuidFDT, FrameCount) = S_OK then If (FrameCount - 1) = 0 then begin SetLength(FrameDelay, 0); end else begin GetGifFrameDelays(gp.GifImage, FrameCount, FrameDelay); end; end; grrrr... LOL gruss |
AW: Array of Integer und crash
Zitat:
Delphi-Quellcode:
program Project219;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; type TOutFrameDelay = array of Integer; procedure GetGifFrameDelays(InGifImage: Cardinal; InFrameCount: Cardinal; var OutFrameDelay: TOutFrameDelay); begin SetLength(OutFrameDelay, InFrameCount - 1); end; procedure Main; var FrameCount: Cardinal; FrameDelay: TOutFrameDelay; begin FrameCount := 4; // if GetGifFrameCount(gp.GifImage, @GuidFDT, FrameCount) = S_OK then If (FrameCount - 1) = 0 then begin SetLength(FrameDelay, 0); end else begin GetGifFrameDelays(0, FrameCount, FrameDelay); end; Writeln('OK'); end; begin try Main; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; end. |
AW: Array of Integer und crash
Zitat:
der Pointer muß auf Myarray[0] zeigen. (ich hab jedenfalls keine Zuweisung gesehen?) Gruß K-H |
AW: Array of Integer und crash
Dank euch muss mir das nochmal ansehen.
Bin jetzt wieder dabei. ;)
Delphi-Quellcode:
Wie ? Wenn ich das Array vorher nicht dimensionieren kann.
der Pointer muß auf Myarray[0] zeigen.
Es ist ja dann noch nicht mal initialisiert ohne SetLength. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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-2025 by Thomas Breitkreuz