git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.SDAC@3 6f543ec7-021b-7e4c-98c9-62eafc7fb9a8
194 lines
4.4 KiB
ObjectPascal
194 lines
4.4 KiB
ObjectPascal
unit ExeMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ExtCtrls, Grids, DBGrids, Db, MemDS, DBCtrls, DBAccess, SdacVcl,
|
|
MSAccess, Buttons;
|
|
|
|
type
|
|
TfmExeMain = class(TForm)
|
|
MSConnection: TMSConnection;
|
|
MSConnectDialog: TMSConnectDialog;
|
|
pnToolBar: TPanel;
|
|
DBGrid: TDBGrid;
|
|
MSQuery: TMSQuery;
|
|
DataSource: TDataSource;
|
|
Panel2: TPanel;
|
|
btFreeDLL: TSpeedButton;
|
|
btLoadDLL: TSpeedButton;
|
|
btShowForm: TSpeedButton;
|
|
btHideForms: TSpeedButton;
|
|
DBNavigator: TDBNavigator;
|
|
Panel1: TPanel;
|
|
btConnect: TSpeedButton;
|
|
btDisconnect: TSpeedButton;
|
|
btOpen: TSpeedButton;
|
|
btClose: TSpeedButton;
|
|
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;
|
|
|
|
TAssignMSConnection = procedure (MSConnection: TMSConnection); cdecl;
|
|
TShowForm = procedure; cdecl;
|
|
THideForms = procedure; cdecl;
|
|
|
|
var
|
|
fmExeMain: TfmExeMain;
|
|
|
|
implementation
|
|
|
|
{$IFDEF CLR}
|
|
{$R *.nfm}
|
|
{$ENDIF}
|
|
{$IFDEF WIN32}
|
|
{$R *.dfm}
|
|
{$ENDIF}
|
|
{$IFDEF LINUX}
|
|
{$R *.xfm}
|
|
{$ENDIF}
|
|
|
|
{$IFNDEF VER130}
|
|
{$IFNDEF VER140}
|
|
{$IFNDEF CLR}
|
|
{$DEFINE XPMAN}
|
|
{$R WindowsXP.res}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
{$IFDEF XPMAN}
|
|
uses
|
|
UxTheme;
|
|
{$ENDIF}
|
|
|
|
procedure TfmExeMain.btLoadDLLClick(Sender: TObject);
|
|
var
|
|
AssignMSConnection: TAssignMSConnection;
|
|
begin
|
|
if hDLL = 0 then begin
|
|
hDLL := LoadLibrary('MS_DLL.dll');
|
|
if hDLL <> 0 then begin
|
|
@AssignMSConnection := GetProcAddress(hDLL, 'AssignConnection');
|
|
if @AssignMSConnection <> nil then
|
|
AssignMSConnection(MSConnection);
|
|
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);
|
|
{$IFDEF XPMAN}
|
|
procedure UpdateStyle(Control: TWinControl);
|
|
var
|
|
Panel: TPanel;
|
|
i: integer;
|
|
begin
|
|
for i := 0 to Control.ControlCount - 1 do begin
|
|
if Control.Controls[i] is TSpeedButton then
|
|
TSpeedButton(Control.Controls[i]).Flat := False
|
|
else
|
|
if Control.Controls[i] is TDBNavigator then
|
|
TDBNavigator(Control.Controls[i]).Flat := False;
|
|
if Control.Controls[i] is TWinControl then begin
|
|
if (Control.Controls[i] is TPanel) then begin
|
|
Panel := TPanel(Control.Controls[i]);
|
|
Panel.ParentBackground := False;
|
|
Panel.Color := clBtnFace;
|
|
end;
|
|
UpdateStyle(TWinControl(Control.Controls[i]));
|
|
end;
|
|
end;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
begin
|
|
{$IFDEF XPMAN}
|
|
if UseThemes then
|
|
UpdateStyle(Self);
|
|
{$ENDIF}
|
|
hDLL:= 0;
|
|
end;
|
|
|
|
procedure TfmExeMain.btConnectClick(Sender: TObject);
|
|
begin
|
|
MSConnection.Connect;
|
|
end;
|
|
|
|
procedure TfmExeMain.btDisconnectClick(Sender: TObject);
|
|
begin
|
|
MSConnection.Disconnect;
|
|
end;
|
|
|
|
procedure TfmExeMain.btOpenClick(Sender: TObject);
|
|
begin
|
|
MSQuery.Open;
|
|
end;
|
|
|
|
procedure TfmExeMain.btCloseClick(Sender: TObject);
|
|
begin
|
|
MSQuery.Close;
|
|
end;
|
|
|
|
procedure TfmExeMain.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
if hDLL <> 0 then
|
|
FreeLibrary(hDLL);
|
|
end;
|
|
|
|
end.
|
|
|