2015-02-16 8 views
1

Я попытался создать первый клиентский проект, который я получил от http://sourceforge.net/projects/indy10clieservr/, но он говорит, что TIdTextEncoding и Default из строки 62 оба не объявлены. У меня не было никаких шансов, так что могло бы вызвать это?Почему TIdTextEncoding.Default не объявлен?

Полный код: интерфейс списки

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdGlobal; 

type 
    TClientForm = class(TForm) 
    CheckBoxConnectDisconnet: TCheckBox; 
    ButtonSendString: TButton; 
    Edit1: TEdit; 
    Memo1: TMemo; 
    IdTCPClient1: TIdTCPClient; 
    procedure CheckBoxConnectDisconnetClick(Sender: TObject); 
    procedure ButtonSendStringClick(Sender: TObject); 
    procedure IdTCPClient1Connected(Sender: TObject); 
    procedure IdTCPClient1Disconnected(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    ClientForm: TClientForm; 

implementation 

{$R *.dfm} 

{ TForm1 } 

procedure TClientForm.ButtonSendStringClick(Sender: TObject); 
var 
    LLine: String; 
begin 

    IdTCPClient1.IOHandler.WriteLn(Edit1.Text, TIdTextEncoding.Default); 
    Edit1.Text := ''; 
    LLine := IdTCPClient1.IOHandler.ReadLn(); 
    if (LLine = 'OK') then 
     Memo1.Lines.Add('Server says it has received your String'); 

end; 

procedure TClientForm.CheckBoxConnectDisconnetClick(Sender: TObject); 
begin 
    if (CheckBoxConnectDisconnet.Checked = True) then 
    begin 
    IdTCPClient1.Host := '127.0.0.1'; 
    IdTCPClient1.Port := 6000; 
    IdTCPClient1.Connect; 
    end 
    else 
    IdTCPClient1.Disconnect; 
end; 

procedure TClientForm.IdTCPClient1Connected(Sender: TObject); 
begin 
    Memo1.Lines.Add('Client connected with server'); 
end; 

procedure TClientForm.IdTCPClient1Disconnected(Sender: TObject); 
begin 
    Memo1.Lines.Add('Client disconnected from server'); 
end; 

end. 

ответ

6

Этот проект только Delphi 2010, XE, XE2 и на домашней странице SourceForge, поэтому я думаю, что она не была обновлена ​​до более новой версии Indy.

TIdTextEncoding был удален в Инди 10.6, как указано в Инди ChangeLog blog:

Indy 10.6 has been released

класс IdGlobal.TIdTextEncoding был заменен на новый IdGlobal.IIdTextEncoding refcounted интерфейс, который больше не зависит от SysUtils.TEncoding (Embarcadero) или System.Text.Encoding (.NET) больше (хотя есть оболочки, если вам все еще нужно использовать их с Indy). Следовательно, функции IndyXXXEncoding() устарели в пользу новых функций IndyTextEncoding_XXX().

Indy 10.6 представила новую функцию IndyTextEncoding_OSDefault() в качестве замены для TIdTextEncoding.Default. (См. here)

Смежные вопросы