📄 loading.pas
字号:
unit Loading;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseForm, StdCtrls, ExtCtrls;
type
TfrmLoading = class(TfrmBaseForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FindPlugins;
procedure AddMenuFromPlugin(aPlugin:String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLoading: TfrmLoading;
implementation
uses Main, Login,Menus;
{$R *.dfm}
procedure TfrmLoading.AddMenuFromPlugin(aPlugin: String);
type
TProc = procedure (var MenuStr:String);
var
DllHnd:THandle;
Proc:TProc;
TmpStr:String;
aItem:TMenuItem;
begin
DllHnd:=LoadLibrary(Pchar(aPlugin));
if DllHnd<>0 then
begin
Proc:=GetProcAddress(DllHnd,'GetMenuStr');
if Assigned(Proc) then Proc(TmpStr);
if TmpStr<>'' then
begin
aItem:=TMenuItem.Create(frmMain.MainMenu1);
aItem.Caption:=TmpStr;
aItem.OnClick:=frmMain.PluginMenuClick;
aItem.Hint:=aPlugin;
frmMain.N2.Add(aItem);
end;
end;
FreeLibrary(DllHnd);
end;
procedure TfrmLoading.FindPlugins;
var
FindRec:TSearchRec;
i:integer;
begin
i:=Findfirst(ExtractFilePath(Application.ExeName)+'*.dll',faAnyFile,FindRec);
while i=0 do
begin
Panel1.Caption:='正在加载模块'+FindRec.Name+'...';
Application.ProcessMessages;
self.Update;
AddMenuFromPlugin(FindRec.Name);
i:=FindNext(FindRec);
end;
end;
procedure TfrmLoading.Timer1Timer(Sender: TObject);
begin
inherited;
Timer1.Enabled:=False;
if not FileExists(ExtractFilePath(Application.ExeName)+'Sunway.udl') then
begin
Messagebox(Handle,'在当前目录无法找到连接文件 "Sunway.udl"','启动错误',mb_ok+mb_iconError);
Modalresult:=mrok;
Exit;
end;
Panel2.Caption:='正在连接数据库...';
Self.Update;
frmMain.ADOConn.ConnectionString:='File Name='+ExtractFilePath(Application.ExeName)+'Sunway.udl';
try
frmMain.ADOConn.Open;
except
Messagebox(Handle,'无法连接到到指定服务器,请重新设置连接文件 "Sunway.udl" ','系统提示',mb_ok+mb_iconError);
Modalresult:=mrok;
Exit;
end;
Panel2.Caption:='正在验证用户身份...';
Self.Update;
frmLogin:=TfrmLogin.Create(Self);
frmLogin.ShowModal;
if not Main.Logined then
begin
Modalresult:=mrok;
Exit;
end;
FindPlugins;
Modalresult:=mrok;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -