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.
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.
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.
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.