Quello che segue è il sorgente completo di un programmino da console che serve a fare un paio di test di questa caratteristica. Dopo il codice alcuni commenti.
{$IFDEF USE_ADVANCED_RECORD_SYNTAX} procedure TCliente.WriteIndirizzo(tipo: TTipoIndirizzo); begin WriteLn(RagSociale);
// test output case tipo of tiSedeLeg: if (SedeLegale.Indirizzo = '') and (SedeLegale.CAP = '') and (SedeLegale.Citta = '') and (SedeLegale.Prov = '') then tipo := tiSedeOp; tiSedeCon: if (SedeConsegna.Indirizzo = '') and (SedeConsegna.CAP = '') and (SedeConsegna.Citta = '') and (SedeConsegna.Prov = '') then tipo := tiSedeOp; end;
// output case tipo of tiSedeOp: begin Writeln(SedeOperativa.Indirizzo); Writeln(SedeOperativa.CAP, ' - ' , SedeOperativa.Citta, ' (', SedeOperativa.Prov, ')'); end; tiSedeLeg: begin Writeln(SedeLegale.Indirizzo); Writeln(SedeLegale.CAP, ' - ', SedeLegale.Citta, ' (', SedeLegale.Prov, ')'); end; tiSedeCon:begin Writeln(SedeConsegna.Indirizzo); Writeln(SedeConsegna.CAP, ' - ', SedeConsegna.Citta, ' (', SedeConsegna.Prov, ')'); end; end; end; {$ENDIF}
begin
WriteLn('Test Advanced Record Syntax'); Write('Advanced Record Syntax: '); {$IFDEF USE_ADVANCED_RECORD_SYNTAX} WriteLn('ON'); {$ELSE} WriteLn('OFF'); {$ENDIF}
WriteLn('Size TCliente: ', SizeOf(Cliente));
with Cliente do begin ID:= 1; RagSociale:='Lazarus Enterprises Inc.'; ParIva := 'IT01234567890';
With SedeOperativa do begin Indirizzo := 'Via dei mille nr. 999'; CAP := '12345'; Citta := 'Firenze'; Prov := 'FI'; end;
With SedeConsegna do begin Indirizzo := 'Via dei bancali nr. 541'; CAP := '55442'; Citta := 'Ancona'; Prov := 'AN'; end;