![]() |
Größenbeschränkung eines array of record
Hallo liebe Forenmitglieder,
ich bin auf ein Phänomen gestoßen, das ich mir nicht erklären kann. Ich habe in einer Klasse ein array of record:
Delphi-Quellcode:
Funktioniert soweit einwandfrei. Wenn ich nun eine Variable N hinzufüge (egal welchen Types), bekomme ich beim Create der Klasse im Hauptprogramm (MyDice := TDice.Create) eine Schutzverletzung ("EAccessViolation"). 12 Variablen gehen, bei der 13. klappt es nicht mehr. Ich habe mit den Variablennamen und Typen herumgespielt, das scheint irrelevant zu sein. Ich verwende Delphi 2010.
type TDice = class
private Z: array of record A, B, C : double; D, E, F : array of integer; G, H, I : integer; J, K, L : boolean; M : String; end; (...) Hat jemand eine Idee, woran das liegen könnte? |
Re: Größenbeschränkung eines array of record
Ich habe das hier mal mit einem N: Integer ausprobiert, aber keinerlei Probleme feststellen können...
Probier doch mal, den Record als eigenen Typ zu deklarieren und beim Klassenfeld dann diesen Typ zu benutzen. Du kannst auch noch eine Stufe weiter gehen und das array of record als eigenen Typ deklarieren. Wenn du diese Typen nicht außerhalb der Klasse brauchst, kannst du sie auch inenrhalb der Klasse deklarieren. |
Re: Größenbeschränkung eines array of record
Hier ebenfalls kein Problem.
(D2010 mit allen Updates) [edit] probier es mal mit 14 ... vielleicht ist 13 ja deine Unglückszahl? :lol: |
Re: Größenbeschränkung eines array of record
Könnte es sein, dass der String eventuell Probleme bereitet?
|
Re: Größenbeschränkung eines array of record
Danke, habe die Lösung gefunden. PC neu starten hat geholfen! Standby und Ruhezustand, sowie Delphi öffnen+schließen waren ohne Wirkung geblieben - da hatte ich schon an mir bzw. meinem Delphi gezweifelt. Seit dem Reboot klappt es.
Ich vermute, dass irgendwelche Relikte im Speicher festgehängt sind. Da ich momentan viel Teste, habe ich es mit den .free etc nicht so genau genommen. Auch die array-Grenzen sind schon böse strapaziert worden... Pardon, dass ihr eure Zeit für so einen Unsinn geopfert habt, ich werde in Zukunft immer neu starten vor ich hier poste :? |
Re: Größenbeschränkung eines array of record
Zitat:
|
Re: Größenbeschränkung eines array of record
Dennoch sollte Windows den Speicher freigeben, wenn das Programm beendet wird, selbst wenn man .Free vergißt (zumindestens seit WinNT).
|
Re: Größenbeschränkung eines array of record
Ja klar, aber er scheint es ja doch irgendwie geschafft zu haben was kaputt zu machen :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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