Avatar billede krab Praktikant
24. november 2001 - 12:20 Der er 6 kommentarer og
1 løsning

Hvorfor kan ik lade sig gør

hvorfor kan dette ikke lade sig gøre. den fatter kun at den skal skrive \'1\', den går ikke vidre hvis det er \'2\', det er jo over netværk, er der nogle der kan hjælpe. her er koden:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
if socket.receivetext = \'1\' then
begin
memo1.Clear;
memo1.Lines.add(\'1\');
end
else
begin
if socket.receivetext = \'2\' then
begin
memo1.Clear;
memo1.Lines.add(\'2\');
end;
end;

end;
Avatar billede jakoba Nybegynder
24. november 2001 - 12:50 #1
I funktionen bruger du  \'socket\'  som record-navn. Burde det ikke være parameterens navn \'Socket\' ?
Eller bibeholder Delphi Pascals \'ligeglad med store og små bogstaver\'.

Hvorfor er der en parameter \'Sender\'?

mvh JakobA
Avatar billede martinlind Nybegynder
24. november 2001 - 13:06 #2
Måske er det fordi du ikke tømmer bufferen, så når du sender første gang indeholder den \'1\' anden gang \'12\', og det er jo ikke lig med \'2\'

ellers kan du prøve at bruge if Pos(\'2\',socket.receivetext) > 0 then
begin
end;
Avatar billede morten_s Nybegynder
24. november 2001 - 13:06 #3
Er du sikker på at du læser et 2 tal

prøv at sætte en ShowMessage ind så kan du se hvad du får ind

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ShowMessage(socket.receivetext); //<-- SÆT DENNE LINIE IND
  if socket.receivetext = \'1\' then
  begin
    memo1.Clear;
    memo1.Lines.add(\'1\');
  end;
  //else FJERN OGSÅ DETTE ELSE DET HAR INGEN BETYDNING
  if socket.receivetext = \'2\' then
  begin
    memo1.Clear;
    memo1.Lines.add(\'2\');
  end;
end;

end;
Avatar billede dkn Nybegynder
24. november 2001 - 13:25 #4
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
Var
SockText : ansistring;
begin
SockText := Socket.ReceiveText;

if SockText = \'1\' then
begin
memo1.Clear;
memo1.Lines.add(\'1\');
end;

if SockText = \'2\' then
begin
memo1.Clear;
memo1.Lines.add(\'2\');
end;
end;


Ofte bliver man nødt til at gemme det tekst som den modtager, ellers viker det ikke.
Avatar billede krab Praktikant
24. november 2001 - 15:50 #5
>> DKN
Det du sagde var det jeg skulle bruge, men hvis du lige gidder hjælpe mig med en ting mere, hvordan sender man commandoer istedet for tekst.
håber du ved hvad jeg mener.
Avatar billede lasseh Nybegynder
24. november 2001 - 20:44 #6
du kan kun sende data .. det er så op til det program i den anden ende at genkende det du har sent og så udføre en komando på baggrund af det.. :)
Avatar billede dkn Nybegynder
25. november 2001 - 00:34 #7
krab -> jeg har posted et svar på det nye spørgsmål. Håber du kan bruge det:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester