Wieder so ein blödes Problem.
Mein Record wird wieder mal gelöscht.
Delphi-Quellcode:
GaSprites = packed record
ID: Integer;
objtype: Integer;
filename: string;
end;
TGaSprites = array of GaSprites;
gaSprite: TGaSprites;
Ich fülle den record.
Delphi-Quellcode:
procedure GetArraySprite(ID: Integer);
var
Item: TgObj;
begin
// Ruft alle Details zu einem Sprite-Objekt in einem einzigen Schritt ab.
gSprKit.GD_GetObjectProperties(ID, Item);
// Identifikations ID des Sprite Objekt
gaSprite[ID].ID := ID;
// Der Objekttyp (Bitmap, Text, Pfeil, Kurve, Rechteck, Ellipse, Polylinie)
gaSprite[ID].objtype := Item.objtype;
// Freundlicher Name
gaSprite[ID].fname := Item.objlabel;
end;
Wenn ich jetzt in meiner Proc den Record vergleichen will ist der Record leer.
Delphi-Quellcode:
for K := 0 to SpriteCount do
begin
if (gaSprite[K].filename = sDropName) and (gaSprite[K].ID > -1) then
begin
Result := DefWindowProc(WinHandle, Msg, wP, lP);
// Redimensionieren wenn filename gleich ist
SetLength(gaSprite, K + 1);
// Window zerstören
DestroyWindow(WinHandle);
// Raus hier.. LOL super Kommentar
exit;
end;
end;
Warum?
Ich setze das Array nirgendwo zurück..
Nur die Daten im record sind weg.
Das hat dann zur folge das ich mehr als ein UhrBlatt addieren kann.
gruss