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

📄 unit1.pas

📁 电气控制仿真软件
💻 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 + -