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

📄 callcli.pas

📁 这是一个网络数据库回调例程,基于SocketConnection的
💻 PAS
字号:
{Program to demonstrate callbacks between server and client over SocketServer.
This uses the new capabilities in D4.

Written by Dan Miser
Copyright 1998}
unit CallCli;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBClient, MConnect, StdCtrls, CallbackSrv_TLB, SConnect, ComObj, ActiveX,
  DB;

type
  TClient = class(TAutoIntfObject, IClient)
  protected
    procedure Progress(RecNo, RecCount: integer; var Continue: WordBool); safecall;
    procedure Done; safecall;
  end;

  TfrmClient = class(TForm)
    btnTraverse: TButton;
    DCOMConnection1: TDCOMConnection;
    SocketConnection1: TSocketConnection;
    chkStop: TCheckBox;
    gbProgress: TGroupBox;
    lblProgress: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    procedure btnTraverseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FClient: TClient;
  public
    { Public declarations }
    MyDispatchConnection: TDispatchConnection;
  end;

var
  frmClient: TfrmClient;

implementation

{$R *.DFM}

procedure TClient.Progress(RecNo, RecCount: integer; var Continue: WordBool);
begin
  frmClient.lblProgress.Caption:=Format('%d/%d', [RecNo, RecCount]);
  Application.ProcessMessages;
  Continue:=not frmClient.chkStop.Checked;
end;

procedure TClient.Done;
begin
  ShowMessage('Done!! [callback]');
end;


procedure TfrmClient.btnTraverseClick(Sender: TObject);
begin
  MyDispatchConnection.AppServer.TraverseTable;
end;

{MyDispatchConnection shows how to switch between multiple DipatchConnection}
{components easily, using polymorphism.}
procedure TfrmClient.FormCreate(Sender: TObject);
var
  typelib: ITypeLib;
begin
  MyDispatchConnection:=SocketConnection1;
  MyDispatchConnection.Connected:=true;
  OleCheck(LoadRegTypeLib(LIBID_CallbackSrv, 1, 0, 0, typelib));
  FClient:=TClient.Create(typelib, IClient);

  MyDispatchConnection.AppServer.SetCallback(FClient as IDispatch);
end;

end.

⌨️ 快捷键说明

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