Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   const array of record (https://www.delphipraxis.net/180064-const-array-record.html)

akurka 20. Apr 2014 09:34

const array of record
 
Hallo,
Seit Stunden suche nach dem Fehler, kann mir jemand helfen?


interface

type
T_Anzeigefeld=record
Ze,Zl :byte;
end;

T_Anzeigefelder=array [1..10] of T_Anzeigefeld;

const
A1 :T_Anzeigefeld =(Ze:1; Zl:1);
A2 :T_Anzeigefeld =(Ze:9 ; Zl:1);
A3 :T_Anzeigefeld =(Ze:17; Zl:1);
A4 :T_Anzeigefeld =(Ze:25; Zl:1 );
A5 :T_Anzeigefeld =(Ze:33; Zl:1 );
A6 :T_Anzeigefeld =(Ze:41; Zl:1 );
A7 :T_Anzeigefeld =(Ze:49; Zl:1 );
A8 :T_Anzeigefeld =(Ze:57; Zl:1 );
A9 :T_Anzeigefeld =(Ze:65; Zl:1 );
A10:T_Anzeigefeld =(Ze:73; Zl:1 );

K_Anzeigefelder :T_Anzeigefelder =(A1¦,A2,A3,A4,A5,A6,A7,A8,A9,A10);
// hier ist der Fehler bei der Kompilation, Fehler cursor: ¦
//---------------------------------------------------------------------------------------------------------------------------
[Fehler] NCKU09.pas(233): '(' erwartet, aber Bezeichner 'A1' gefunden
[Fehler] NCKU09.pas(233): Konstantenausdruck erwartet
[Fehler] NCKU09.pas(233): Konstantenausdruck erwartet
[Fataler Fehler] NCKU00.PAS(13): Verwendete Unit 'NCKU09.pas' kann nicht compiliert werden
//---------------------------------
.. Meine Entwicklungsumgebung ist Delphi7
Vielen Dank zum Voraus.

himitsu 20. Apr 2014 09:44

AW: const array of record
 
Es steht doch da?
Der Compiler erlaubt es nunmal nicht, dort andere Record-Konstanten einzubinden, drum erwartet er auch eine direkte Angabe.
Delphi-Quellcode:
type
  T_Anzeigefeld = record
    Ze, Zl: Byte;
  end;
  T_Anzeigefelder = array[1..10] of T_Anzeigefeld;
  // oder
  //T_Anzeigefelder = array[1..10] of record
  //  Ze, Zl: Byte;
  //end;

const
  K_Anzeigefelder: T_Anzeigefelder = (
    (Ze: 1; Zl: 1),
    (Ze: 9; Zl: 1),
    (Ze: 17; Zl: 1),
    (Ze: 25; Zl: 1),
    (Ze: 33; Zl: 1),
    (Ze: 41; Zl: 1),
    (Ze: 49; Zl: 1),
    (Ze: 57; Zl: 1),
    (Ze: 65; Zl: 1),
    (Ze: 73; Zl: 1));
PS: Es sei vielleicht erwähnt, daß Record-Konstanten (und einige Andere) im Delphi "eigentlich" nur schreibgeschützte Variablen sind,
darum auch der Folgefehler "Konstantenausdruck erwartet".

akurka 20. Apr 2014 10:01

AW: const array of record
 
Hallo himitsu,
Danke Dir vielmal, jetzt lauft es. Ich wäre selber nicht darauf gekommen.:-D

himitsu 20. Apr 2014 10:13

AW: const array of record
 
Bitte.

Mit fällt grade auf, daß es wie Folgt auch nicht geht.
Delphi-Quellcode:
const
  A1_Ze = 1; // untypisierte Konstante
  A1_Zl = 1;
  A2_Ze: Byte = 9; // typisierte Konstante
  A2_Zl: Byte = 1;

  K_Anzeigefelder: T_Anzeigefelder = ((A1_Ze, A1_Zl), (A2_Ze, A2_Zl), ...);
Egal ob typisiert oder nicht, wobei ich noch erwartet hätte, daß es zumindestens untypisiert ginge. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz