![]() |
Mehrere Records verschachteln
Und zwar habe ich eine Frage, was ist am untenstehenden Code flasch?
Die Arrays sollen Dynamisch werden, zum anderen bekomme ich eine Meldung Das ich die 2GB grenze überschritten habe, kann man das auch anders lösen.
Code:
Danke!
type
TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; TPreset = record Name: String; Choice: char; Value: array [] of Byte; end; TChannel = record Name: String; Choice: char; Min: Byte; Max: Byte; Is16Bit: Boolean; end; TFixture = record Name: String; IsHead: Boolean; ChCount: Byte; Channel: array [] of TChannel; Preset: array [] of TPreset; end; TManufacturer = record Name: String; FixCount: Byte; Fixture: array [] of TFixture end; var Form1: TForm1; Fixlib: array [] of TManufacturer; Bee |
Moin Bee,
wenn Du mal die [] weglässt, sollte das funktionieren. |
Fehlanzeige
Auch das löschen der eckigen Klammer ergibt eine Menge an Fehlermeldungen
[ erwartet bzw. ordinaltyp erwartet, irgendwo muss noch der Wurm sein. Bee |
Innerhalb von Records musst Du Typen nutzen, um dyn. Arrays einzusetzen.
Delphi-Quellcode:
// aus TPreset = record Name: String; Choice: char; Value: array [] of Byte; end; // wird TByteArray = array of Byte; TPreset = record Name: String; Choice: char; Value: TByteArray end; |
Zitat:
@Bee: Hast du auch wirklich alle [] entfernt? Auch die bei Zitat:
|
Moin Bee,
nachdem ich mal die [] entfernt hatte ging's bei mir. In VB(A) werden dynamische Arrays wohl mit () deklariert in Pascal in dem man die Angabe der Dimensionen weglässt. |
Hallo Christian, Hallo jbg!
ich habe meinen Code folgendermaßen abgeändert und erhalte bei der Syntaxprüfung trozdem Fehlermeldungen, ich habe sie mal als Kommentar dazu geschrieben
Code:
irgendwas passt noch nicht so ganz.
type
TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; TPreset = record Name : String; Choice : char; Value : array of Byte; { [ erwartet of gefunden.} end; { of erwartet end gefunden.} TChannel = record Name : String; Choice : char; Min : Byte; Max : Byte; Is16Bit : Boolean; end; TFixture = record Name : String; IsHead : Boolean; ChCount : Byte; Channel : array of TChannle; { [ erwartet of gefunden, ] erwartet aber ; gefunden} Preset : array of TPreset; { of erwartet aber Bezeichner Preset gefunden} end; { zu oben , oder : erwartet aber ; gefunden, Typ erwartet aber END gefunden} TManufacturer = record Name : String; FixCount : Byte; Fixture : array of TFixture; { [ erwartet aber of gefunden, Ordinaltyp erforderlich} end; { of erwartet aber End gefunden} var Form1: TForm1; Fixlib: array of TManufacturer; { [ erwartet aber of gefunden, Ordinaltyp erforderlich} implementation { of erwartet aber IMPLEMENTATION gefunden} Gruß Bee |
Moin Bee,
da es bei mir wieder einwandfrei funktioniert (nachdem ich auch TChannle TChannel gemacht habe), kommt mir ein unangenehmer Verdacht: D3 verwendet entweder eine andere Syntax, oder aber kann nicht mit dynamischen Arrays umgehen (was mich allerdings wundern würde) Ich tippe mal auf andere Syntax, oder Einstellung in den Optionen. |
Hi,
Zitat:
Gruß Hansa |
Zitat:
|
Danke Problem umgangen
Danke!
Da ich in der Onlinehilfe von D3 auch nichts zu dyn. Arrays gefunden habe, hab ich das Problem damit gelöst in dem ich Delphi6PE installiert habe, jetzt funktionierts ohne Fehlermeldungen. :) bis zum nächsten problem :mrgreen: Bee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 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