Lazarus下安装indy的正确方法:indy-10.2.0.3.tar.gz
下载indy后,解压缩到任意文件夹
2.以管理员模式启动lazarus
3.打开包,选择indy\lazarus\indylaz.lpk
3.添加 IdGlobal.pas 到包indylaz.lpk
4.编译,安装,完成
INDY 10 在 Linux Lazarus 下無法運作的解決方案
http://delphi.ktop.com.tw/board.php?cid
... tid=100948 (文中第 3 個回覆)
(1) INDY 10 的 README 中有說, 在 UNIX 系統中編譯的時後要加入 "-dUseCThreads"
參數
在你的 INDY 專案主選單 -> Project -> Compiler
Options 之 Other 頁, 加入 "-dUseCThreads" 編譯參數
(2) 在 Linux 跟 WIN32 環境中, 驅動 TIdTcpServer 的寫法也有不同
WIN32 :
procedure TForm1.FormActivate(Sender: TObject);
begin
IdTCPServer1.DefaultPort:= 6501;
IdTCPServer1.Active:=true;
end;
Linux
procedure TForm1.FormActivate(Sender: TObject);
begin
//uses idGlobal , the Id_IPv4 force the IdTCPServer to work in
Id_IPV4 mode.
IdTCPServer1.Bindings.Add.IPVersion := Id_IPv4; // 否則將出現 with
socket error # 98 , address already in use
IdTCPServer1.Bindings.Add.IP:='127.0.0.1';
IdTCPServer1.Bindings.Add.Port:= 6501;
IdTCPServer1.Active:=true;
end;
(3) 在 IdTCPServer1 的 OnExecute() 事件若要處理 VCL , 請使用 TIdSync 同步物件; 否則,
直接在 OnExecute() 事件中處理 VCL 顯示類的 CODE , 將導致被連線幾次後整個 Server 程式就 Crash
掉