![]() |
Generic List of records
wir verwenden eine generische Liste aus Punkten um eine Funktion darzustellen . Im Sample Code die Definition der Kurve und der TestCode :
Delphi-Quellcode:
diese Code Sequenz habe ich schon in mehreren Anwendungen erfolgreich verwendet.
TCurve = class(TList<TPointF>)
private .... public end; var i: Integer; aTPointF: TPointF; aCurve: TCurve; begin aCurve := TCurve.Create; for i := -10 to 10 do begin aTPointF.X := i; aTPointF.Y := -10 + i * i - i; aCurve.Add(aTPointF) // -> AV end; end; jetzt bekomme ich eine Fehlermeldung bei aCurve.Add (). in der Unit System.types :
Delphi-Quellcode:
// Calculate the needed size of the heap object
Inc(PByte(typeInfo), PDynArrayTypeInfo(typeInfo).name); |
AW: Generic List of records
Kann ich hier mit Tokyo nicht nachvollziehen. Ich vermute den Fehler an ganz anderer Stelle (Typdeklaration mit demselben Namen wie eine Variable oder sowas).
|
AW: Generic List of records
Hmm...
Zitat:
Mal ne ganz blöde Frage: Wird bei List.Add() immer eine KOPIE des Records in die Liste eingehängt, oder das übergebene Record selber? Ansonsten hast Du doch immer das selbe Record mit den selben Werten (des letzten Records) in der Liste... |
AW: Generic List of records
Danke für den Hinweis. Den Fehler jetzt gefunden : die Create Function der generischen Liste war falsch, inherited create vergessen.
komisch nur , der Code wurde schon x mal verwendet ....... |
AW: Generic List of records
Eventuell machen die jetzt mehr im Constructor.
Zitat:
Delphi-Quellcode:
und kopiert darein genau den Typen, den man in der Deklaration bei <T> angegeben hat.
array of T
Also hier eine Kopie des Records und es wird natürlich auch auf das Speichermanagement von gemanageten Typen (Strings, dyn. Arrays und Interfaces) geachtet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 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