unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls,dbiTypes,dbiprocs, DB, DBTables, Gauges,
Grids,
DBGrids;
type
TForm1 = class(TForm)
Button1: TButton;
Query1: TQuery;
Button2: TButton;
Gauge1: TGauge;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:integer;
implementation
{$R *.DFM}
function ServerCallBack(CallType: CBType; Data: Longint;
var Info: Pointer): CBRType; export;
begin
form1.caption := 'Called';
i := i + 20;
form1.gauge1.progress := i;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ptr : pointer;
c : CbProgressDesc;
begin
ptr := (@ServerCallBack);
check( DbiRegisterCallBack (nil,CbGenPRogress,5,sizeof(c),@c,pfdbicallback(ptr)));
(*hCursor
: hDBICur; { Cursor
(Optional) }
ecbType
: CBType; {
Type of call back }
iClientData : Longint;
{ Pass-thru client data }
iCbBufLen :
Word;
{ Callback buffer len }
CbBuf
: Pointer; { Pointer
to callback buffer }
pfCb
: pfDBICallBack { Call back fn being registered
}*)
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
query1.open;
gauge1.progress := 100; {Finish the gauge}
end;
end.