Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - Delphi XE Problema da Delphi 7
Forum - Delphi - Delphi XE Problema da Delphi 7

Avatar
MrCamarium (Member)
Newbie


Messaggi: 2
Iscritto: 28/05/2013

Segnala al moderatore
Postato alle 20:16
Giovedì, 13/01/2022
Ho scaricato un sorgente da questo sito con qui tramite server e cliente è possibile massaggiare ma nel compilarlo mi da questo errore:
[DCC Error] Unit1.pas(53): E2003 Undeclared identifier: 'WriteLn'

Codice sorgente - presumibilmente Delphi

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent,
  8.   IdTCPConnection, IdTCPClient, IdAntiFreezeBase, IdAntiFreeze, ExtCtrls;
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     client: TIdTCPClient;
  13.     anticongelo: TIdAntiFreeze;
  14.     logmemo: TMemo;
  15.     Button1: TButton;
  16.     Timer1: TTimer;
  17.     Button2: TButton;
  18.     Button3: TButton;
  19.     Edit1: TEdit;
  20.     Edit3: TEdit;
  21.     Memo1: TMemo;
  22.     Label1: TLabel;
  23.     procedure Button2Click(Sender: TObject);
  24.     procedure Button3Click(Sender: TObject);
  25.     procedure Button1Click(Sender: TObject);
  26.     procedure Timer1Timer(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.   public
  30.     { Public declarations }
  31.   end;
  32.  
  33. var
  34.   Form1: TForm1;
  35.  
  36. implementation
  37.  
  38. {$R *.dfm}
  39.  
  40.  
  41. procedure TForm1.Button2Click(Sender: TObject);
  42. begin
  43.   Client.Disconnect;
  44.   client.Port:=strtoint(edit1.text);
  45.   client.Host:=edit3.text;
  46.   Client.Connect();
  47. end;
  48.  
  49. procedure TForm1.Button3Click(Sender: TObject);
  50. begin
  51.  if Client.Connected then
  52.   begin
  53.    Client.WriteLn(memo1.text);
  54.    memo1.clear;
  55.   end
  56.  else
  57.  showmessage('Non sei ancora connesso');
  58.  
  59. end;
  60.  
  61. procedure TForm1.Button1Click(Sender: TObject);
  62. begin
  63.  client.Disconnect;
  64.  halt;
  65. end;
  66.  
  67. procedure TForm1.Timer1Timer(Sender: TObject);
  68. begin
  69. if client.Connected then
  70. logmemo.Lines.Add(client.ReadLn('',5));
  71. end;
  72.  
  73. end.


PM Quote
Avatar
MrCamarium (Member)
Newbie


Messaggi: 2
Iscritto: 28/05/2013

Segnala al moderatore
Postato alle 8:08
Domenica, 16/01/2022
Ho risolto con il cliente:
Codice sorgente - presumibilmente Delphi

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent,
  8.   IdTCPConnection, IdTCPClient, IdAntiFreezeBase, IdAntiFreeze, ExtCtrls;
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     client: TIdTCPClient;
  13.     anticongelo: TIdAntiFreeze;
  14.     logmemo: TMemo;
  15.     Esci: TButton;
  16.     Timer1: TTimer;
  17.     Connetti: TButton;
  18.     Invia: TButton;
  19.     Edit1: TEdit;
  20.     Edit3: TEdit;
  21.     Memo1: TMemo;
  22.     Label1: TLabel;
  23.     procedure ConnettiClick(Sender: TObject);
  24.     procedure InviaClick(Sender: TObject);
  25.     procedure EsciClick(Sender: TObject);
  26.     procedure Timer1Timer(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.   public
  30.     { Public declarations }
  31.   end;
  32.  
  33. var
  34.   Form1: TForm1;
  35.  
  36. implementation
  37.  
  38. {$R *.dfm}
  39.  
  40.  
  41. procedure TForm1.ConnettiClick(Sender: TObject);
  42. begin
  43.   Client.Disconnect;
  44.   client.Port:=strtoint(edit1.text);
  45.   client.Host:=edit3.text;
  46.   Client.Connect();
  47. end;
  48.  
  49. procedure TForm1.InviaClick(Sender: TObject);
  50. begin
  51.  if Client.Connected then
  52.   begin
  53.    Client.IOHandler.WriteLn(memo1.text);
  54.    memo1.clear;
  55.   end
  56.  else
  57.  showmessage('Non sei ancora connesso');
  58.  
  59. end;
  60.  
  61. procedure TForm1.EsciClick(Sender: TObject);
  62. begin
  63.  client.Disconnect;
  64.  halt;
  65. end;
  66.  
  67. procedure TForm1.Timer1Timer(Sender: TObject);
  68. begin
  69. if client.Connected then
  70. logmemo.Lines.Add(client.IOHandler.ReadLn('',5));
  71. end;
  72.  
  73. end.


Adesso il problema è con il server:
Codice sorgente - presumibilmente Delphi

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer, IdContext,
  8.   IdCustomTCPServer;
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     server: TIdTCPServer;
  13.     Edit1: TEdit;
  14.     Button1: TButton;
  15.     Memo1: TMemo;
  16.     Label1: TLabel;
  17.     Label2: TLabel;
  18.     Label3: TLabel;
  19.     procedure Button1Click(Sender: TObject);
  20.     procedure serverExecute(AThread: TIdContext);
  21.     procedure serverConnect(AThread: TIdContext);
  22.     procedure serverDisconnect(AThread: TIdContext);
  23.   private
  24.     { Private declarations }
  25.   public
  26.     { Public declarations }
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. implementation
  33. var connessi:integer;
  34. {$R *.dfm}
  35.  
  36. procedure TForm1.Button1Click(Sender: TObject);
  37. begin
  38. server.DefaultPort:=strtoint(edit1.text);
  39. server.Active:=true;;
  40.  
  41. end;
  42.  
  43. procedure TForm1.serverExecute(AThread: TIdContext);
  44. var listaclient:tlist; i:integer;
  45.     messaggioprelevato:string;
  46. begin
  47.  messaggioprelevato:=AThread.Connection.IOHandler.ReadLn;
  48.  memo1.lines.add(messaggioprelevato);
  49.  Listaclient := Server.Threads.LockList;
  50.  try
  51.   for i:=0 to connessi-1 do
  52.    try
  53.     TIdContext(Listaclient.Items[i]).Connection.IOHandler.WriteLn(messaggioprelevato);
  54.    except
  55.     TIdContext(Listaclient.Items[i]).Stop;
  56.    end;
  57.  finally
  58.  end;
  59.  Server.Threads.UnlockList;
  60.  
  61. end;
  62.  
  63. procedure TForm1.serverConnect(AThread: TIdContext);
  64. begin
  65.  AThread.Connection.IOHandler.WriteLn('Benvenuto tu sei il client numero'+inttostr(connessi));
  66.  connessi:=connessi+1;
  67.  if connessi=1 then
  68.   label1.Caption:='1 connesso'
  69.  else
  70.   if connessi=0 then
  71.    label1.caption:='Nessun connesso al server'
  72.   else
  73.    label1.caption:=inttostr(connessi)+' connessi';
  74. end;
  75.  
  76. procedure TForm1.serverDisconnect(AThread: TIdContext);
  77. begin
  78.  connessi:=connessi-1;
  79.  if connessi=1 then
  80.  label1.Caption:='1 connesso'
  81.  else
  82.  if connessi=0 then
  83.  label1.caption:='Nessun connesso al server'
  84.  else
  85.  label1.caption:=inttostr(connessi)+' connessi';
  86. end;
  87.  
  88. end.


Mi da questo errore:
[DCC Error] Unit1.pas(49): E2003 Undeclared identifier: 'Threads'

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6201
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:06
Domenica, 16/01/2022
È una questione di compatibilità tra la versione che usi e quella per cui è stato scritto il codice


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote