Comprensione e utilizzo dei tipi di dati dei record in Delphi

I set sono ok, gli array sono fantastici.

Supponiamo di voler creare tre array unidimensionali per 50 membri nella nostra comunità di programmazione. Il primo array è per i nomi, il secondo per le e-mail e il terzo per il numero di upload (componenti o applicazioni) nella nostra community.

Ogni array (elenco) avrebbe indici corrispondenti e un sacco di codice per mantenere tutti e tre gli elenchi in parallelo. Certo, potremmo provare con un array tridimensionale, ma per quanto riguarda il suo tipo? Abbiamo bisogno di una stringa per nomi ed e-mail, ma di un numero intero per il numero di caricamenti.

Il modo di lavorare con una tale struttura di dati è usare Delphi's struttura record.

TMember = Record ...

Ad esempio, la seguente dichiarazione crea un tipo di record chiamato TMember, quello che potremmo usare nel nostro caso.

In sostanza, a la struttura dei dati dei record può combinare qualsiasi tipo incorporato di Delphi compresi tutti i tipi che hai creato. I tipi di record definiscono raccolte fisse di elementi di diversi tipi. Ogni articolo o campo, è come una variabile, composta da un nome e un tipo.

Il tipo TMember contiene tre campi: un valore di stringa chiamato Nome (per contenere il nome di un membro), un valore di un tipo di stringa chiamato e-mail (per una e-mail) e un numero intero (Cardinale) chiamato Messaggi (per contenere il numero di invii alla nostra comunità).

Dopo aver impostato il tipo di record, possiamo dichiarare una variabile di tipo TMember. TMember è ora un buon tipo di variabile per le variabili di qualsiasi altro tipo incorporato di Delphi come String o Integer. Nota: la dichiarazione di tipo TMember, non alloca memoria per i campi Nome, E-mail e Messaggi;

Per creare effettivamente un'istanza del record TMember dobbiamo dichiarare una variabile di tipo TMember, come nel seguente codice:

Ora, quando abbiamo un record, usiamo un punto per isolare i campi di DelphiGuide.

Nota: il codice sopra potrebbe essere riscritto con l'uso di con parola chiave.

Ora possiamo copiare i valori dei campi di DelphiGuide su AMember.

Registra ambito e visibilità

Il tipo di record dichiarato all'interno della dichiarazione di un modulo (sezione di implementazione), funzione o procedura ha un ambito limitato al blocco in cui è dichiarato. Se il record viene dichiarato nella sezione dell'interfaccia di un'unità, ha un ambito che include qualsiasi altra unità o programma che utilizza l'unità in cui si verifica la dichiarazione.

Una matrice di record

Poiché TMember si comporta come qualsiasi altro tipo di oggetto Pascal, possiamo dichiarare un array di variabili record:

Nota: ecco come dichiarare e inizializzare un array costante di record in Delphi.