2014-11-29 18 views

risposta

5

Sì, è possibile. Ma dal momento che si desidera dichiarare un tipo, è necessario digitare un valido type expresssion

type menu = class 
    private 
    type menu_element = RECORD 
     id: PtrUInt; 
     desc: string; 
    end; 
end; 
+0

Questo costrutto è Delphi 2006+ o FPC 2.6+ –

+1

Stavo partendo dal presupposto che l'OP usasse FPC con il dialetto objfpc. Dato che è open source, è raro vedere qualcuno che usa una vecchia versione del compilatore. Ma è giusto che potrebbe un altro compilatore. –

+0

Se si presuppone FPC, allora è possibile una soluzione più vecchia e più diretta, vedere la mia risposta. –

3

Free Pascal accetta questo se si modifica il "=" a ":". I campi vengono dichiarati con ":", tipi con "="

{$mode Delphi} 
type 
    menu = class 
     private 
      menu_element : RECORD 
       id: PtrUInt; 
       desc: string; 
      end; 
     public 
      procedure foo(); 
    end; 

procedure menu.foo; 
begin 
end; 


begin 
end. 

Turbo Pascal e Delphi (e FPC di prima 2.2) vietano questo. Free Pascal ha ripristinato questo vecchio comportamento (classico Pascal) a causa dei dialetti Apple.