Hi,
ich habe einen Updater der der die neueste version und eine notice zu einem Client übermittelt. Leider klappt das mit dem notice senden nicht so es kommt immer: nil kann nicht zu TRicheditStrings zugewiesen werden.
mein code (ausschnitte):
Server:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| type TestRecord = record lines: TStrings; end;
TForm2 = class(TForm) [...]
procedure TForm2.ServerSocket1ClientWrite(Sender: TObject; Socket: TCustomWinSocket); var buffer: TestRecord; begin
with Buffer do begin lines := richedit1.lines; end;
Socket.SendBuf(Buffer, SizeOf(Buffer)); Socket.Sendtext(Edit1.text); end; |
Client:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| type TestRecord = record lines: Tstrings; end;
[...]
procedure TForm2.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var aktuell: boolean; getbuffer: TestRecord; begin aktuell:=false; label5.Caption:=Socket.ReceiveText; Application.ProcessMessages; aktuell:=label4.caption=label5.caption; if not aktuell then begin showmessage('OMG new version!'); end; if aktuell then begin showmessage('You are using the latest version.'); end;
Socket.ReceiveBuf(GetBuffer, SizeOf(GetBuffer));
with GetBuffer do begin RichEdit1.Lines:=lines; end;
end; |
Edit:
Wenn ich
Delphi-Quelltext
1: 2: 3: 4:
| with GetBuffer do begin lines.SaveToFile('lol.txt'); end; |
mach kommt ne access violation also kann es sein das der gar nix empfängt?