codice:
type
TCommand = class(TObject)
cmd : string[10];
opt : string;
data: TList;
end;
TRubrica = class(TObject)
Nome,
Cognome: string[15];
Azienda: string[30];
NumTel,
NumCell: string[20];
Email,
Notes : string[30];
end;
// omissis
procedure TForm1.Button1Click(Sender: TObject);
begin
comando: TCommand.Create; // la variabile comando è dichiarata "private" nella classe del form
comando.cmd := 'GetList';
comando.opt := 'A'; // secondo il mio protocollo questo comando con quest'opzione chiede al server di fare una lista di contatti che comincino per A
IdTcpClient1.WriteStream(TStream(comando));
IdTcpClient1.ReadStream(TStream(comando)); // il client riceve risposta dal server ed inizia l'interpretazione dello stream.
// omissis
end;
Però, a run-time il compilatore mi dà errore di access violation sul casting di "comando"; immagino sia perchè non è stato istanziato come stream. Allora ho creato anche una variabile temporanea di tipo TStream e l'ho inizializzata, ma mi dà sempre access violation.