⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dm_client.pas

📁 车辆管理系统
💻 PAS
字号:
unit dm_Client;

interface

uses
  SysUtils, Classes, ScktComp, Dialogs, Forms, MConnect, ObjBrkr, DB,
  DBClient, SConnect;

type
  TdmClient = class(TDataModule)
    CSocket: TClientSocket;
    SocketConnection1: TSocketConnection;
    SimpleObjectBroker1: TSimpleObjectBroker;
    CDSuserRight: TClientDataSet;
    procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure DataModuleCreate(Sender: TObject);
    procedure DataModuleDestroy(Sender: TObject);
    procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dmClient: TdmClient;

implementation

uses Global, ClientMain;

{$R *.dfm}

procedure TdmClient.CSocketError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
case errorevent of
     eeconnect:
      begin
         MessageDlg('远程连接错误'+#13#10+'请尝试重新启动中间层和SCKTSRVR',mtError,[mbOk],0);
      end;
     eeSend:
        MessageDlg('发送错误',mtError,[mbOk],0);
     eeReceive:
        MessageDlg('接收错误',mtError,[mbOk],0);
     eeDisconnect:
        MessageDlg('断开错误',mtError,[mbOk],0);
     eeLookup:
        MessageDlg('查找错误',mtError,[mbOk],0);
end;
Errorcode:=0;
end;

procedure TdmClient.DataModuleCreate(Sender: TObject);
begin
  socketconnection1.LoginPrompt:=False;
  socketconnection1.Connected:=False;
  if not socketconnection1.Connected then
    begin
      try
        with simpleobjectbroker1 do
          begin
            if Servers.Count = 0 then
              begin
                Servers.Add;
                Servers.Items[0].ComputerName:=SServerIP;
              end
              else
              begin
                Servers.Add;
                Servers.Items[Servers.Count-1].ComputerName:=SServerIP;
              end;
          end;
          simpleobjectbroker1.LoadBalanced:=True;
          socketconnection1.ObjectBroker:=simpleobjectbroker1;
          socketconnection1.ServerGUID:='{C3E65EEF-9C13-436C-AA24-C2E1BAF783D7}';
          socketconnection1.ServerName:='ServerMain.untPooler';
          socketconnection1.Connected:=True;
      except
          on E:exception do
            begin
              messagedlg('连接中间层错误 ! ',mtError,[mbok],0);
              abort;
            end;
      end;
    end;
    if socketconnection1.Connected then
        isScoketconnectionopen:=True
        else
        isScoketconnectionopen:=False;
end;

procedure TdmClient.DataModuleDestroy(Sender: TObject);
begin
  socketconnection1.Connected:=false;
  socketconnection1.ObjectBroker:=nil;
  socketconnection1.ServerGUID:='';
  socketconnection1.ServerName:='';
  simpleobjectbroker1.LoadBalanced:=False;
  simpleobjectbroker1.Servers.Clear;
end;

procedure TdmClient.CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
var
str:string;
begin
str:=CSocket.Socket.ReceiveText ;
 if str=c_Disconnect then
     begin
       MessageDlg('服务器已经断开该机连接,请立即退出 ! ', mtInformation,[mbOk], 0);
       frmclientMain.Close ;
       Application.Terminate ;
     end
     else if copy(str,1,3)=c_Msg then
       begin
         MessageDlg('服务器消息 : ['+SrNow()+']:'+#13#10+copy(str,4,length(str)-3), mtInformation,[mbOk], 0);
     end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -