Avatar billede ALS Praktikant
18. august 2014 - 13:50 Der er 3 kommentarer og
1 løsning

Erklæring af constant array?

Jeg har behov for at erklære en menu-struktur som en constant i programmet til en lille embedded microcontroller (Pascal, men ikke Delphi).
Strukturen ser sådan ud:

  {Id, ParentId, MenxText}
  1, 0, 'Menu 1'
  2, 1, ' Menu 11'
  3, 1, ' Menu 12'
  4, 1, ' Menu 13'
  5, 0, 'Menu 2'
  6, 1, ' Menu 21'
  7, 1, ' Menu 22'
  8, 1, ' Menu 23'
  9, 0, 'Menu 3'

Jeg har forsøgt mig med denne fremgangsmåde, men kan simpelthen ikke få compileren til at godkende den efterfølgende oplistning afkonstanterne.

  Type
    MenuItemType = RECORD
                    Id  : BYTE;
                    ParentId : BYTE;
                    MenuText : STRING;
                  END;

  CONST
    MenuItems: ARRAY[1..MaxMenuItems] of MenuItemType = (......


Er der en, der kan hjælpe mig videre?
Jeg er kommet i tvivl om man overhovedet kan erklære et konstanter som array af min egen type. Hvis man kan er jeg usikker på syntaxen.
Avatar billede kroning Nybegynder
18. august 2014 - 15:11 #1
Type
    MenuItemType = RECORD
                    Id  : BYTE;
                    ParentId : BYTE;
                    MenuText : STRING;
                  END;

  CONST
    MaxMenuItems = 2;
    MenuItems: ARRAY[1..MaxMenuItems] of MenuItemType = ((Id : 1; ParentId : 1; Menutext : 'Noget'), (Id : 1; ParentId : 3; MenuText : 'Noget andet'));
Avatar billede ALS Praktikant
18. august 2014 - 15:48 #2
Tak for dit svar.

Den syntax virker fint i Delphi, men desværre ikke i den Pascal compiler jeg bruger til min micocontroller.
Avatar billede kroning Nybegynder
18. august 2014 - 16:02 #3
Hvad er det for en compiler
Avatar billede ALS Praktikant
18. august 2014 - 16:10 #4
En ældre Pascal 8051-compiler til embedded microcontroller.
Jeg sidder arbejder på et program til en AT80C51ED2.

Det ser ud til at det bare er syntaxen, der er forskellig, for dette virker (men ikke i Delphi):

  MenuItems: ARRAY[1..MaxMenuItems] of MenuItemType =
    (
      (1, 1, 'Noget'),
      (2, 1, 'Noget andet')
    );
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester