transmettre des VARIANT via la fonction sendbuf
Bonjour tout le monde :) ,
J'aimerais faire une application sous delphi6 afin de pouvoir transmettre via des sockets plusieurs type de donnée(bool,string et integer) et afficher leur résultat.
Pour cela j'ai décidé de stocker toutes ces données dans un tableau de VARIANT et de faire le transfert via la fonction sendbuf.
J'ai essayé l'exemple suivant sans savoir si cétait vraiment possible mais lorsque j'effectue le transfert, il m'affiche une fenêtre d'erreur à la réception "Argument incorrect "
- à l'émission :
Code:
1 2 3 4 5 6 7 8 9 10
| procedure TForm1.Button2Click(Sender: TObject);
var
tab1 : Variant;
begin
tab1 :=VarArrayCreate([1,3],varVariant);
tab1[1]:=d1; // d1 : boolean
tab1[2]:=d2; // d2 : Integer
tab1[3]:=d3; // d3 : string
ClientSocket1.Socket.SendBuf(tab1,27); // taille connue : 27
end; |
- à la réception :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
tab2 : Variant;
begin
tab2 :=VarArrayCreate([1,3],varVariant);
Socket.ReceiveBuf(tab2,27);
if tab2[1] Then RadioButton1.Checked := True
else RadioButton2.Checked := True;
Edit2.Text := intToStr(tab2[2]);
Edit3.Text := tab2[3];
end; |
Quelqu'un pourrait m'aider svp :?