📄 exemain.pas
字号:
unit ExeMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Ora, StdCtrls, ExtCtrls, Grids, DBGrids, Db, MemDS, DBCtrls, DBAccess, OdacVcl;
type
TfmExeMain = class(TForm)
OraSession: TOraSession;
ConnectDialog: TConnectDialog;
pnToolBar: TPanel;
btLoadDLL: TButton;
btFreeDLL: TButton;
DBGrid: TDBGrid;
btConnect: TButton;
btDisconnect: TButton;
btOpen: TButton;
btClose: TButton;
OraQuery: TOraQuery;
DBNavigator: TDBNavigator;
DataSource: TDataSource;
btShowForm: TButton;
btHideForms: TButton;
procedure btLoadDLLClick(Sender: TObject);
procedure btFreeDLLClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btConnectClick(Sender: TObject);
procedure btDisconnectClick(Sender: TObject);
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btShowFormClick(Sender: TObject);
procedure btHideFormsClick(Sender: TObject);
private
hDLL:HModule;
public
end;
TAssignSession = procedure (Session: TOraSession); cdecl;
TShowForm = procedure; cdecl;
THideForms = procedure; cdecl;
var
fmExeMain: TfmExeMain;
implementation
{$R *.DFM}
procedure TfmExeMain.btLoadDLLClick(Sender: TObject);
var
AssignSession: TAssignSession;
begin
if hDLL = 0 then begin
hDLL := LoadLibrary('OraDLL.dll');
if hDLL <> 0 then begin
@AssignSession := GetProcAddress(hDLL, 'AssignSession');
if @AssignSession <> nil then
AssignSession(OraSession);
MessageDlg('DLL is loaded', mtInformation, [mbOk], 0);
end
else
MessageDlg('Cannot load DLL', mtError, [mbOk], 0);
end;
end;
procedure TfmExeMain.btShowFormClick(Sender: TObject);
var
ShowForm: TShowForm;
begin
if hDLL <> 0 then begin
@ShowForm := GetProcAddress(hDLL, 'ShowForm');
if @ShowForm <> nil then
ShowForm;
SetFocus;
end
else
MessageDlg('DLL is not loaded', mtError, [mbOk], 0);
end;
procedure TfmExeMain.btHideFormsClick(Sender: TObject);
var
HideForms: THideForms;
begin
if hDLL <> 0 then begin
@HideForms := GetProcAddress(hDLL, 'HideForms');
if @HideForms <> nil then
HideForms;
end
else
MessageDlg('DLL is not loaded', mtError, [mbOk], 0);
end;
procedure TfmExeMain.btFreeDLLClick(Sender: TObject);
begin
if hDLL <> 0 then begin
FreeLibrary(hDLL);
hDLL := 0;
end
else
MessageDlg('DLL is not loaded', mtError, [mbOk], 0);
end;
procedure TfmExeMain.FormCreate(Sender: TObject);
begin
hDLL:= 0;
end;
procedure TfmExeMain.btConnectClick(Sender: TObject);
begin
OraSession.Connect;
end;
procedure TfmExeMain.btDisconnectClick(Sender: TObject);
begin
OraSession.Disconnect;
end;
procedure TfmExeMain.btOpenClick(Sender: TObject);
begin
OraQuery.Open;
end;
procedure TfmExeMain.btCloseClick(Sender: TObject);
begin
OraQuery.Close;
end;
procedure TfmExeMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if hDLL <> 0 then
FreeLibrary(hDLL);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -