![]() |
Array aus Record löschen
Löschen des Array
Delphi-Quellcode:
packe ich das ganze jetzt in eine procedure macht das Teil Ärger ;)
if gS[K].h_Bitmap = 0 then
begin for Index := (K + 1) to (Length(gs) - 1) do gs[Index - 1] := gs[Index]; Setlength(gs, length(gs) - 1); dec(Count); if gp.RecycleBin = K then gp.RecycleBin := 0; end; Manchmal hat man echt ein Brett vorm Kopf.
Delphi-Quellcode:
Aufruf
procedure Delete(var SrcArray: Array of TSprite; Index: Integer);
var I: Integer begin for I := (Index + 1) to (Length(SrcArray) - 1) do SrcArray[I- 1] := SrcArray[I]; Setlength(SrcArray, length(SrcArray) - 1); //<< inkompatible Typen end;
Delphi-Quellcode:
Delete(gs, K);
verwende ich jetzt hier direkt gs dann funktioniert das ganze. Warum?
Delphi-Quellcode:
Setlength(gs, length(SrcArray) - 1); //<< inkompatible Typen
es ist unabhängig vom var Parameter. Auch dann geht es nicht. gruss |
AW: Array aus Record löschen
Zitat:
![]() Lösung: TArray<TSprite> |
AW: Array aus Record löschen
Zitat:
Das Problem ist nur das ich einen Var Parameter übergebe.. eventuell entfernen? Müsste eigentlich auch ohne gehen. Ich kann es im Moment nicht testen da das nur eine Vorsichtsmaßnahme ist falls das HBitmap einmal 0 sein sollte. EDIT: Ich weiß jetzt nicht welche Auswirkungen es hat wenn ich
Delphi-Quellcode:
zu
gs: Array of TSprite;
Delphi-Quellcode:
ändere.
gs: TArray<TSprite>;
gruss |
AW: Array aus Record löschen
Das Warum wurde da auch erklärt ... Stichwort "Open Array" vs. "dynamisches Array".
![]() |
AW: Array aus Record löschen
Var ist schon in Ordnung.
|
AW: Array aus Record löschen
Zitat:
Wird das Teil langsamer oder zu irgendwelchen Einstellungen inkompatibel? Zitat:
Es geht mir um mein EDIT: im vorherigen Beitrag.. gruss |
AW: Array aus Record löschen
Ich hab auch ein EDIT im Post. :angle:
|
AW: Array aus Record löschen
Zitat:
Nur welchen vor oder Nachteil bringt das für mich. Habe keinen Bock den Code deshalb jetzt komplett umschreiben zu müssen. Dann mache ich es lieber ohne Procedure. gruss |
AW: Array aus Record löschen
Es ist schneller? (das Open Array kopiert praktisch die Daten/Zeiger, die von außen rein kommen, in seine eigene Struktur rein)
Und vorallem "es funktioniert". |
AW: Array aus Record löschen
Zitat:
Danke für eure Hilfe. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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 by Thomas Breitkreuz