Hi!
Folgendes:
Es wird auf den BtnNew geklickt und eine Info wird per
TCP versandt:
Delphi-Quellcode:
procedure TBoardForm.BtnNewClick(Sender: TObject);
begin
SendText('Info','NewGame');
end;
Delphi-Quellcode:
procedure TBoardForm.SendText(FKind, FTxt: String);
var
ASendText: String;
begin
//{
try
if TcpClient.Connect then
begin
ASendText:=FKind+'#'+FTxt;
TcpClient.Sendln(ASendText);
end;
finally
TcpClient.Disconnect;
end;
//}
end;
Dann wird sie empfangen, 'zerstückelt', ausgewertet und es wird je nach Info darauf reagiert:
Delphi-Quellcode:
procedure TBoardForm.TcpServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
RecievedLn: String;
i,j: Integer;
RecievedKind: String;
RecievedInfo: String;
begin
RecievedLn:=ClientSocket.Receiveln;
//{
i:=0;
while not(RecievedLn[i]='#')
do inc(i);
RecievedKind:=Copy(RecievedLn,0,i-1);
if (RecievedKind = 'Info') then
begin
inc(i);
j:=i;
while not(length(RecievedLn)=i)
do inc(i);
RecievedInfo:=Copy(RecievedLn,j,i-j+1);
if RecievedInfo = 'NewGame'
then ShowMessage('Test!');
//CheckInfo(RecievedInfo);
end;
//}
end;
Grundsätzlich passiert folgendes:
Die ShowMessage wird gezeigt, aber danach zickt das Programm. Wenn ich die Form beenden will meldet Delphi eine EAccessViolation (screenshot anbei: error1.jpg)
Ab und zu ist auch folgendes passiert:
Vor, bzw. während dem Anzeigen der ShowMessage (sie wird nicht mehr gezeichnet) tickt der PC komplett aus. Es hängt alles - jeder Task (auch Taskmanager). Jeder Bearbeitungsschritt (zb. Taskmngr öffnen / Task anklicken / etc.) braucht ca 20-30 Sekunden!!
Hin und wieder gab's vorher von Delphi eine Fehlermeldung -> anbei(error2.jpg)
Ich hoffe, mir kann jemand weiterhelfen!
Danke!