📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ADODB, DB, OleCtrls, vgctrl40_TLB;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
ADOConnection1: TADOConnection;
vgctrl1: Tvgctrl;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses unit2, unit3, unit6;
var
GlobalBuffer : array[0..1000] of char;
function ADOQueryCreate : Longint; stdcall;
var
query : TADOQuery;
begin
query := TADOQuery.Create( nil );
query.Connection := Form1.ADOConnection1;
Result := Longint( query );
end;
procedure ADOQueryFree( query : Longint ); stdcall;
begin
TADOQuery( query ).Free;
end;
procedure ADOQueryOpen( query : Longint; sql : PChar ); stdcall;
begin
TADOQuery( query ).Close;
TADOQuery( query ).SQL.Text := StrPas( sql );
TADOQuery( query ).Open;
end;
procedure ADOQueryClose( query : Longint ); stdcall;
begin
TADOQuery( query ).Close;
end;
function ADOQueryEof( query : Longint ) : Integer; stdcall;
begin
Result := Integer( TADOQuery( query ).Eof );
end;
function ADOQueryActive( query : Longint ) : Integer; stdcall;
begin
Result := Integer( TADOQuery( query ).Active );
end;
procedure ADOQueryFirst( query : Longint ); stdcall;
begin
TADOQuery( query ).First;
end;
procedure ADOQueryPrior( query : Longint ); stdcall;
begin
TADOQuery( query ).Prior;
end;
procedure ADOQueryNext( query : Longint ); stdcall;
begin
TADOQuery( query ).Next;
end;
procedure ADOQueryLast( query : Longint ); stdcall;
begin
TADOQuery( query ).Last;
end;
function ADOQueryGetFieldValue( query : Longint; fname : PChar ) : PChar; stdcall;
begin
StrPCopy( @GlobalBuffer, TADOQuery( query ).FieldByName( fname ).AsString );
Result := @GlobalBuffer;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString := 'FILE NAME=' + ExtractFilePath( Application.ExeName ) + 'demo.dsn';
ADOConnection1.Connected := true;
vgctrl1.AddFunction( 'ADOQueryCreate', '', 48 + 1, Longint( @ADOQueryCreate ) );
vgctrl1.AddFunction( 'ADOQueryFree', '1', 48, Longint( @ADOQueryFree ) );
vgctrl1.AddFunction( 'ADOQueryOpen', '14', 48, Longint( @ADOQueryOpen ) );
vgctrl1.AddFunction( 'ADOQueryClose', '1', 48, Longint( @ADOQueryClose ) );
vgctrl1.AddFunction( 'ADOQueryEof', '1', 48 + 3, Longint( @ADOQueryEof ) );
vgctrl1.AddFunction( 'ADOQueryActive', '1', 48 + 3, Longint( @ADOQueryActive ) );
vgctrl1.AddFunction( 'ADOQueryFirst', '1', 48, Longint( @ADOQueryFirst ) );
vgctrl1.AddFunction( 'ADOQueryPrior', '1', 48, Longint( @ADOQueryPrior ) );
vgctrl1.AddFunction( 'ADOQueryNext', '1', 48, Longint( @ADOQueryNext ) );
vgctrl1.AddFunction( 'ADOQueryLast', '1', 48, Longint( @ADOQueryLast) );
vgctrl1.AddFunction( 'ADOQueryGetFieldValue', '14', 48 + 4, Longint( @ADOQueryGetFieldValue ) );
ListBox1.ItemIndex := 0
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Form2 : TForm2;
begin
Form2 := TForm2.Create( Application );
if ListBox1.ItemIndex = 0 then
Form2.vgctrl1.Design( 'template1.tbl' )
else if ListBox1.ItemIndex = 1 then
Form2.vgctrl1.Design( 'template2.tbl' )
else if ListBox1.ItemIndex = 2 then
Form2.vgctrl1.Design( 'template3.tbl' );
Form2.ShowModal;
Form2.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form3 := TForm3.Create( Application );
if ListBox1.ItemIndex = 0 then
Form3.vgctrl1.Run( 'template1.tbl' )
else if ListBox1.ItemIndex = 1 then
Form3.vgctrl1.Run( 'template2.tbl' )
else if ListBox1.ItemIndex = 2 then
Form3.vgctrl1.Run( 'template3.tbl' );
Form3.vgctrl1.ZoomFitWidth;
Form3.ShowModal;
Form3.Free;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
with TForm6.Create( Application ) do
begin
ShowModal;
Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -