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

📄 untmain.pas

📁 自动创建带密码的Access数据库及表,第三方控件主要有: ReportMachine3.67 ,WinSkin4.22, DBGridEh等
💻 PAS
字号:
unit UntMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ActnList, ImgList, DB, ADODB, UntIniFile,LblDBA,
  GlobalClass, ExtCtrls, WinSkinData;
const
  DBDefPwd  = '~!·#¥%……—*';
  DBConStr  = 'Provider=Microsoft.Jet.OLEDB.4.0;'
                    +' Data Source="%s";'
                    +' Jet OLEDB:Database Password = "%s"';

type
  TfrmMain = class(TForm)
    mmMain: TMainMenu;
    N1: TMenuItem;
    mnuOpen: TMenuItem;
    mnuNew: TMenuItem;
    N4: TMenuItem;
    mnuExit: TMenuItem;
    dlgOpenDB: TOpenDialog;
    statmain: TStatusBar;
    ImglstMain: TImageList;
    dlgNewDB: TOpenDialog;
    tmrGetTme: TTimer;
    SknDtMain: TSkinData;
    mmLabel: TMainMenu;
    N2: TMenuItem;
    N3: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    H1: TMenuItem;
    A1: TMenuItem;
    procedure mnuNewClick(Sender: TObject);
    procedure mnuOpenClick(Sender: TObject);
    procedure mnuExitClick(Sender: TObject);
    procedure tmrGetTmeTimer(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
    procedure OpenUserDb(DBName:String);
    procedure LoginUserDB;
  public
    { Public declarations }
    UserInfo : TUserInfo;
    ChildFrm : TStringList;
  end;

var
  frmMain: TfrmMain;

implementation

uses  UDM, UntLogin, UntNewLabel, untOpenLbl;

{$R *.dfm}

procedure TfrmMain.mnuExitClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.mnuNewClick(Sender: TObject);
var
  DBName:string;
begin
  dlgNewDB.Title := '新建标签数据库';
  if dlgNewDB.Execute then
    begin
      DBName := dlgNewDB.FileName;
      If FileExists(DBName) then
        begin
          ShowMessage('文件已存在,不能创建!');
          Exit;
        end
      else
        begin
          If CreateDB(DBNAME,DBDefPwd,true) then
            begin
              ShowMessage('文件"'+DBNAME+'"创建成功'+#10#13#10+'初始用户名:admin '
                                                    +#10#13#10+'  初始密码:888888');
              OpenUserDb(DBName);
            end;
        end;
    end;
end;

procedure TfrmMain.mnuOpenClick(Sender: TObject);
begin
  If dlgOpenDB.Execute then
    If FileExists(dlgOpenDB.FileName)then
      begin
//        mmMain.Unmerge(mmLabel);
        OpenUserDb(dlgOpenDB.FileName);
      end;
end;

procedure TfrmMain.OpenUserDb(DBName:string);
var
  iniFileName : string;
begin
  If not Assigned(frmDMLbl) then frmDMLbl := TfrmDMLbl.create(Self);
  frmDMLbl.conDBLbl.Connected := False;
  frmDMLbl.conDBLbl.ConnectionString := Format(DBConStr,[DBName,DBDefPwd]);
  frmDMLbl.conDBLbl.Connected := True;
  statmain.Panels[4].Text := DBName;

  iniFileName :=  ExtractFilePath(Application.ExeName)+'LblSetup.ini';
  IniOptions.LoadFromFile(iniFileName);
  IniOptions.OptionLastFile   := DBNAME;
  IniOptions.OptionLastUser   := 'Admin';
  IniOptions.OptionLastLbl    := '';
  IniOptions.SaveToFile(iniFileName);

  LoginUserDB;
end;

procedure TfrmMain.LoginUserDB;
begin
  UserInfo.UID := 0 ;
  If not Assigned(frmLogin) then
    frmLogin := TfrmLogin.Create(nil);
  frmLogin.ShowModal;
  FreeAndNil(frmLogin);
  statmain.Panels[1].Text := UserInfo.UName;
  If UserInfo.UID <>0 then
    begin
      Self.Menu := mmLabel;
    end
  else
    statmain.Panels[1].Text := '未登陆';
end;

procedure TfrmMain.tmrGetTmeTimer(Sender: TObject);
begin
  statmain.Panels[3].Text := DateTimeToStr(Now);
end;

procedure TfrmMain.N3Click(Sender: TObject);
begin
  if ChildFrm.Count > 0 then
    begin
      ShowMessage('请先关闭打开的子窗体!');
      Exit;
    end;

  if not Assigned(frmNewLabel) then frmNewLabel := TfrmNewLabel.Create(Self);
  frmNewLabel.show;
  frmNewLabel.BringToFront;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  iniFileName :string;
  AutoDBName:string;
begin
  ChildFrm := TStringList.Create;
  iniFileName :=  ExtractFilePath(Application.ExeName)+'LblSetup.ini';
  IniOptions.LoadFromFile(iniFileName);
  AutoDbName := IniOptions.OptionLastFile;
  if FileExists(AutoDbName) then
     OpenUserDb(AutoDbName);
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  ChildFrm.Destroy;
end;

procedure TfrmMain.N7Click(Sender: TObject);
var
  i : Integer;
begin
  with statmain do
  begin
    Panels[1].Text := '未登陆';
    Panels[4].Text := '';
  end;

  //关闭所有子窗体
  for i:=0 to MDIChildCount-1 do
      MDIChildren[i].Close;

  Self.Menu := mmMain;

  //关闭所有数据连接
  if Assigned(frmDMLbl) then
    frmdmlbl.conDBLbl.Connected := False;
end;

procedure TfrmMain.N8Click(Sender: TObject);
begin
  if ChildFrm.Count > 0 then
     begin
       ShowMessage('请先关闭打开的子窗体!');
       Exit;
     end;

  if not Assigned(frmOpenLabel) then  frmOpenLabel := TfrmOpenLabel.Create(Self);

  frmOpenLabel.show;
  frmOpenLabel.BringToFront;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -