RTFormwork/项目代码/RTBasicsV1/E03梭织坯布检验/U_Link.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

116 lines
2.7 KiB
ObjectPascal

unit U_Link;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
IniFiles,Dialogs, ScktComp, ExtCtrls;
type
TCommBlock = record
workFlag:integer; //0:开始接受字符串,
linkString:string[255];
// buf:array [0..Buffersize] of char;
end;
TfrmLink = class(TForm)
CSocket: TClientSocket;
AADs: TPanel;
procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure FormDestroy(Sender: TObject);
procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
fADOConnString:string;
LinkFlag:string;
function LinkTxServer():Boolean;
{ Public declarations }
end;
var
frmLink: TfrmLink;
implementation
//uses U_Main;
{$R *.dfm}
function TfrmLink.LinkTxServer():Boolean;
var
CommBlock : TCommBlock;
begin
result:=false;
try
CommBlock.workFlag:=strtointdef(LinkFlag,-1);
CommBlock.linkString:='';
CSocket.Socket.SendBuf(CommBlock,SizeOf(CommBlock));
Result:=true;
except
Application.MessageBox('连接通讯服务器失败!','错误信息',MB_ICONERROR);
end;
end;
procedure TfrmLink.CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
var
CommBlock1: TCommBlock;
begin
try
CSocket.Socket.ReceiveBuf(CommBlock1,SizeOf(CommBlock1));
fADOConnString:=trim(CommBlock1.linkString);
ModalResult:=1;
except
ModalResult:=-1;
end;
end;
procedure TfrmLink.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cahide;
end;
procedure TfrmLink.CSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
if not LinkTxServer() then ModalResult:=-1;
end;
procedure TfrmLink.FormDestroy(Sender: TObject);
begin
frmLink:=nil;
end;
procedure TfrmLink.CSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
Application.MessageBox('连接通讯服务器失败!','错误信息',MB_ICONERROR);
application.Terminate;
end;
procedure TfrmLink.FormCreate(Sender: TObject);
var
IniFile: TIniFile;
LinkServer:string;
begin
try
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'SYSTEMSET.INI');
LinkServer := IniFile.ReadString('SERVER', '服务器地址','127.0.0.1');
LinkFlag:= IniFile.ReadString('SERVER', '服务器地址类型','0');
finally
IniFile.Free;
end;
try
CSocket.Host:=trim(LinkServer);
CSocket.Port:=47936;
CSocket.Open;
except
ModalResult:=-1;
end;
end;
end.