in una classe ci possono essere variabili statiche ma, in quanto variabili,
credo si possano inizializzare con valore solo ad istanza creata (nel costruttore)
forse nel tuo caso può essere sufficiente una costante tipizzata che può invece essere inizializzata come membro di classe
...
private
type TbCoCas = array[0..1, 0..1] of Integer;
TbCoPartMov = array[0..2, 0..1] of Integer;
TbCoPreMom = array[0..1, 0..1] of Integer;
const
TbCas: TbCoCas = ( (101001000, 101001997),
(101001990, 101001999) );
TbPartMov: TbCoPartMov = ( (102001000, 103999999),
(105001000, 203999999),
(205001000, 999999999) );
TbPreMom: TbCoPreMom = ( (104001000, 104999000),
(204001000, 204999000) );
public
end;
un altro paio di appunti:
- nota che nel codice quì sopra la keyword type è indicata solo una volta (la prima), finché definisci tipi, non serve ripetere
- in pascal è convenzione che i tipi e le classi abbiamo un identificatore che inizia per T mentre le variabili membro di una classe (non le proprietà) dovrebbero iniziare con F
chiaramente è una convenzione e puoi scrivere come vuoi ;)
ma leggere ad esempio
const
TbCas: TbCoCas = ( (101001000, 101001997),
(101001990, 101001999) );
è meno leggibile (almeno per un programmatore pascal) di
const
FTbCas: TbCoCas = ( (101001000, 101001997),
(101001990, 101001999) );
nomorelogic
Tornando al programma che ho cominciato, ho spostato la dichiarazione type sotto la keyword private e modificato la var in const. Ho avviato la compilazione ma c'è sempre l'errore fatale di sintassi che non capisco come e dove intervenire per eliminarlo.
Ora lo dà a livello della prima riga sotto la keyword type
forse mi sono spiegato male
la keyword type non dovevi eliminarla completamente ma dovevi eliminare solamente le ripetizioni dopo la prima
il codice sotto compila correttamente
private
type TbCoCas = array[0..1, 0..1] of Integer;
TbCoPartMov = array[0..2, 0..1] of Integer;
TbCoPreMom = array[0..1, 0..1] of Integer;
const