Avatar billede mtj111 Novice
17. august 2009 - 22:44 Der er 4 kommentarer og
1 løsning

Array[0..Konstant]

Hej

Måske skulle jeg bare gå i seng, men dette irriterer mig en smule :P

Jeg skriver følgende efter Uses:
  const
    SomeConstant: Integer = 113;

Og under Private laver jeg et array:
  SomeArray: Array[0..SomeConstant] of Integer;

Hvorfor kan den ikke lide, at jeg skriver SomeConstant i stedet for 113? Deklarerer jeg min konstant et forkert sted?

Den melder denne fejl:
[Error] Unit1.pas(50): E2026 Constant expression expected

Med venlig hilsen,
Michael
Avatar billede arne_v Ekspert
17. august 2009 - 22:55 #1
Jeg plejer at bruge:

const
  myupper = 117;

type
  myrange = 0..myupper;
  myarray = array[myrange] of integer;

og saa bruge typen myarray resten af stederne.
Avatar billede kroning Nybegynder
17. august 2009 - 22:56 #2
Din SomeConstant: Integer = 113; er ikke en konstant, det skal værer:
SomeConstant = 113;
Avatar billede mtj111 Novice
17. august 2009 - 23:06 #3
Tak for de hurtige svar begge to :)

Jeg brugte Kronings svar.

Mvh.
Michael
Avatar billede hrc Mester
18. august 2009 - 12:47 #4
Det du lavede var en "assignable constant" altså en konstant som du kunne ændre værdien på. Reelt bliver det en slags initialiseret variabel.

Det er noget der styres via et compiler-flaget {$J} som enten kan være {$J+} hvilket tillader at du ændrer værdien, eller {$J-} som selvsagt deaktiverer dette. Da det er et levn fra gamle dage, bør muligheden være slået fra.

Prøv i øvrigt at trykke <ctrl-o><ctrl-o>. I toppen af din form kommer alle de flag som man kan sætte i programmet - og i D2009 er det ret mange.
Avatar billede mtj111 Novice
20. august 2009 - 22:55 #5
Ah!
Jeg takker for forklaringen :)
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