Hallo Zusammen.
Ich wollte einen Netzwerkchat programmieren (wie so viele
), jedoch wollte ich, daß jeder Benutzer sich eine eigene Farbe auswählen kann. Dazu benutze ich dann ein TRichEdit. Das Problem ist jetzt nur, wie bekomme ich die Informationen zum Server gesendet?
Ich habe es mit einem Record versucht, jedoch bekomme ich entweder Ausnahmefehler, Asynchrone Fehler oder es kommt ein falscher bzw. unvollständiger Text an. Wer kann mir helfen?
Hier ist der (vereinfachte) Quellcode:
Delphi-Quellcode:
TestRecord =
record
text:
string;
farbe: TColor;
stil: TFontStyles;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Server.Port := 10024;
Server.Open;
Client.Port := 10024;
Client.Host := '
localhost';
Client.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Buffer: TestRecord;
begin
with Buffer
do begin
text := edit1.Text;
farbe := clBlue;
stil := [fsBold];
end;
Client.Socket.SendBuf(Buffer, SizeOf(Buffer));
end;
procedure TForm1.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var GetBuffer: TestRecord;
begin
Socket.ReceiveBuf(GetBuffer, SizeOf(GetBuffer));
with GetBuffer
do begin
RichEdit1.SelAttributes.Color := farbe;
RichEdit1.SelAttributes.Style := stil;
RichEdit1.Lines.Add(text);
end;
end;