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

📄 main.pas

📁 详细说明:毕业论文中关于小型宾馆管理系统的详细设计毕 业论文中关于小型宾馆...一个酒店管理系统VB+Access [学生学籍管理系统(VB+Acess).zip] - !这个是刚刚编的毕业设计,可能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Main;

interface
                                                                                  
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
  ActnList, ToolWin, ImgList,login,Db,
  ADODB, DBTables, Grids, DBGrids,comobj,wpfuncs,prefs,registry,vafuncs,
  //
  dlgGroup,frmusers,frmRoles,frmpwd,frmusergrp,Dbmain;
const
   TYPE_PRJ=0;
   TYPE_ROLE=1;
   TYPE_DOC=2;
   EN_PRJ=0;
   EN_ROLE=1;
   EN_DOC=2;
   EN_TEMP=3;
type
  TMainForm = class(TForm)
    OpenDialog: TOpenDialog;
    StatusBar: TStatusBar;
    ImageList1: TImageList;
    Panel: TPanel;
    Splitter1: TSplitter;
    PageControl1: TPageControl;
    tsSecurity: TTabSheet;
    tvOrg: TTreeView;
    tsDocs: TTabSheet;
    ImageList2: TImageList;
    pmUser: TPopupMenu;
    Modify1: TMenuItem;
    SetPassword1: TMenuItem;
    Delete1: TMenuItem;
    pmGroup: TPopupMenu;
    ModifyGroup1: TMenuItem;
    Delete2: TMenuItem;
    N2: TMenuItem;
    AssignRights1: TMenuItem;
    N3: TMenuItem;
    AssignRights2: TMenuItem;
    pmGroups: TPopupMenu;
    pmiGroup: TMenuItem;
    Referesh1: TMenuItem;
    pmUsers: TPopupMenu;
    pmiUser: TMenuItem;
    MenuItem2: TMenuItem;
    plClient: TPanel;
    lv: TListView;
    Panel1: TPanel;
    ImgMenu: TImageList;
    Members1: TMenuItem;
    Splitter2: TSplitter;
    pmType: TPopupMenu;
    Delete3: TMenuItem;
    pnDocs: TPanel;
    spRoles: TSpeedButton;
    Label9: TLabel;
    tnav: TToolBar;
    btins1: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    btDelete1: TToolButton;
    ToolButton6: TToolButton;
    btmodify1: TToolButton;
    ToolButton10: TToolButton;
    Panel2: TPanel;
    Image2: TImage;
    SpeedButton1: TSpeedButton;
    tbRefresh: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Image1: TImage;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;

    procedure HelpAbout1Execute(Sender: TObject);
    procedure Preference1Click(Sender: TObject);
    procedure tbRefreshClick(Sender: TObject);
    procedure tvOrgMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure mExitClick(Sender: TObject);
    procedure pmiGroupClick(Sender: TObject);
    procedure Delete2Click(Sender: TObject);
    procedure tvOrgClick(Sender: TObject);
    procedure ModifyGroup1Click(Sender: TObject);
    procedure tbclealogClick(Sender: TObject);
    procedure pmiUserClick(Sender: TObject);
    procedure Delete1Click(Sender: TObject);
    procedure SetPassword1Click(Sender: TObject);
    procedure Modify1Click(Sender: TObject);
    procedure Members1Click(Sender: TObject);
    procedure lvClick(Sender: TObject);
    procedure Delete3Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure spPrjsClick(Sender: TObject);
    procedure spRolesClick(Sender: TObject);
    procedure spDocsClick(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure btins1Click(Sender: TObject);
    procedure btmodify1Click(Sender: TObject);
    procedure btDelete1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure btcommit1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
  private
    { Private declarations }
    procedure InitSecurity;
    procedure InitConfig;
    procedure InitDocs;
    procedure IconState(Node:TTReeNode;flag:integer);
    procedure FreshTv(flag:integer);
    procedure FreshTab(txt:string;flag,tab:integer);
  public
    { Public declarations }
  end;

var
  //MainForm: TMainForm;
  sUser:widestring;
  iType:integer; // 0 - project type, 1-role type, 2- document type
  dType:integer; // 0 -project, 1- role 2-document 3-template
implementation

{$R *.DFM}

uses dlgAbt;


procedure TMainForm.HelpAbout1Execute(Sender: TObject);
var
  dlgAbout: TdlgAbout;
begin
  dlgAbout:=TdlgAbout.Create(self);
  dlgAbout.ShowModal;
end;

procedure TMainForm.Preference1Click(Sender: TObject);
var
   dlgPreferences:TdlgPreferences;
begin
    Application.CreateForm(TdlgPreferences, dlgPreferences);
    dlgPreferences.ShowModal;

end;


procedure TMainForm.InitSecurity;
var root,GrpNode,Node,UserNode:TtreeNode;
    str:TStrings;
    i:integer;
    rows:variant;
begin

   iType:=-1;
   dType:=-1;
   lv.Columns.Clear;
   lv.Items.Clear;

   Rows:=unassigned;
   tvOrg.Items.Clear;

   Root:=tvOrg.Items.Add(nil,'日志');
   IconState(Root,5);
   Root:=tvOrg.Items.Add(nil,'部门/用户');
   IconState(Root,0);
   GrpNode:=tvOrg.Items.AddChild(Root,'部门');
   IconState(GrpNode,1);
   // Add groups

   rows:=sup.PS_Get_groups('');
   str:=Get_ColRecords(rows,2);
   for i :=0 to (str.Count-1) do begin
       Node:=tvOrg.Items.AddChild(GrpNode,str.Strings[i]);
       IconState(Node,2);
   end;
   // Add users
   UserNode:=tvOrg.Items.AddChild(Root,'用户');
   IconState(UserNode,6);

   rows:=sup.PS_Get_Users('');
   str.Clear;
   str:=Get_ColRecords(rows,1);
   for i:=0 to (str.Count-1) do begin
      Node:=tvOrg.Items.AddChild(UserNode,str.Strings[i]);
      IconState(Node,3);
   end;
   // Add Users
   {Node:=tvOrg.Items.AddChild(UserNode,'Admin');
   IconState(Node,3);
   Node:=tvOrg.Items.AddChild(UserNode,'Manager');
   IconState(Node,3);
   tvOrg.FullExpand;
   }
   tvOrg.FullExpand;

end;
procedure TMainForm.InitConfig;
begin
 lv.Columns.Clear;
 lv.Items.Clear;
 
end;
procedure TMainForm.InitDocs;
begin
   lv.Columns.Clear;
   lv.Items.Clear;

end;



procedure TMainForm.tbRefreshClick(Sender: TObject);
begin
  tvOrg.Refresh;
  InitSecurity;
end;
// Set imageindex for Treeview Node
procedure TmainForm.IconState(Node:TTReeNode;flag:integer);
begin
       if flag=0 then  begin
          Node.ImageIndex:=0;
          Node.SelectedIndex:=0;
       end;
       if flag=1 then  begin
          Node.ImageIndex:=1;
          Node.SelectedIndex:=1;
       end;
       if flag=2 then  begin
          Node.ImageIndex:=2;
          Node.SelectedIndex:=2;
       end;
       if flag=3 then  begin
          Node.ImageIndex:=3;
          Node.SelectedIndex:=3;
       end;
       if flag=4 then  begin
          Node.ImageIndex:=4;
          Node.SelectedIndex:=4;
       end;
       if flag=5 then  begin
          Node.ImageIndex:=5;
          Node.SelectedIndex:=5;
       end;
       if flag=6 then  begin
          Node.ImageIndex:=6;
          Node.SelectedIndex:=6;
       end;

 end;



procedure TMainForm.tvOrgMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var Node:TtreeNode;
    sCapt:string;
begin
   if Button<>mbRight then Exit;
   tvOrg.PopupMenu:=nil;
   Node:=tvOrg.Selected;
   if (Node=nil) or (Node.Parent=nil) then Exit;
   tvOrg.PopupMenu:=nil;
   sCapt:=Node.Text;
   if sCapt='部门' then  begin
         tvOrg.PopupMenu:=pmGroups;
   end;
   if sCapt='用户' then  begin
         tvOrg.PopupMenu:=pmUsers;
   end;
   if (Node.Parent.Text='部门') then begin
         tvOrg.PopupMenu:=pmGroup;
   end;
   if (Node.Parent.Text='用户') then begin
          tvOrg.PopupMenu:=pmUser;
   end;


end;

procedure TMainForm.mExitClick(Sender: TObject);
begin
  close;
end;

procedure TMainForm.pmiGroupClick(Sender: TObject);
var
  dlgGroups: TdlgGroups;
  rows:variant;
  role:Tstrings;
begin
  dlgGroups:=TdlgGroups.Create(self);
  with dlgGroups do begin
   rows:=sup.PS_Get_Users('');
   role:=Get_ColRecords(rows,1);
   edCreator.Text:=sUser;
   edDate.Text:=DateTimeTostr(now);
   edGroupDes.Items:=role;
     if ShowModal=mrOK then begin
        if sup.PS_Ins_Groups(edGroupName.Text,edGroupDes.Text) <0 then begin
          Showmessage(sup.PS_LastError);
          Exit;
        end;
        freshtv(2);
        tbRefresh.Click;
     end;
  end;
end;

procedure TMainForm.Delete2Click(Sender: TObject);
var Node:TtreeNode;
    sCapt:string;
begin


   Node:=tvOrg.Selected;
   if (Node=nil) or (Node.Parent=nil) then Exit;
   sCapt:=Node.Parent.Text;
   if (sCapt='部门') then begin
        if MessageDlg('你想删除部门: '+''''+Node.Text+''''+'?',
        mtConfirmation, [mbYes, mbNo], 0) = mrNo then Exit;

         if sup.PS_Del_Groups(Node.Text)<0 then begin
            Showmessage(sup.PS_LastError);
         end else begin
           freshtv(2);
           tbRefresh.Click;
         end;
   end;
   if (sCapt='用户') then begin

   end;

end;

procedure TMainForm.tvOrgClick(Sender: TObject);
var Node:TtreeNode;
    sCapt:string;
begin
   Node:=tvOrg.Selected;
   tvOrg.PopupMenu:=nil;
   if (Node=nil) then exit; // or (Node.Parent=nil) then Exit;

   tvOrg.PopupMenu:=nil;
   if Node.Parent<>nil then begin
      sCapt:=Node.Parent.Text;
      if (sCapt='部门') then begin
         tvOrg.PopupMenu:=pmGroup;
      end;
      if (sCapt='用户') then begin
          tvOrg.PopupMenu:=pmUser;
      end;
   end;


   //tvOrg.FullExpand;
   Node:=tvOrg.Selected;
   if (Node=nil)  then Exit;
   sCapt:=Node.Text;
   if (sCapt='日志') then begin
        freshtv(1);
        //tbRefresh.Click;
        Exit;
   end;
   if tvOrg.Selected.Parent=nil then exit;
   if (sCapt='部门') or (tvOrg.Selected.Parent.Text='部门') then begin
       freshtv(2);
       Exit;
        //tbRefresh.Click;
   end;
   if ((sCapt='用户') and (tvOrg.Selected.Parent=nil)) or (tvOrg.Selected.Parent.Text='用户')then begin
        freshtv(3);
        Exit;
   end;

end;
procedure TMainForm.freshtv(flag:integer);
var
    rows:olevariant;
begin

   if (flag=1) then begin
        lv.Columns.Clear;
        lv.Items.Clear;
        lv.Items.BeginUpdate;
        Lv.Columns.BeginUpdate;
        rows:=sup.PS_Get_Logs('','');
        ListViewAddColumns(['类型','时间','使用','原因','描述'],[75,150,75,75,550],lv);
        ListViewAddRows(rows,lv);
        StatusBar.Panels[0].Text:='   Logs Infomation:';
        lv.Items.EndUpdate;
        Lv.Columns.EndUpdate;
        //tbRefresh.Click;
        Exit;
   end;

   if (flag=2) then begin
        lv.Items.BeginUpdate;
        Lv.Columns.BeginUpdate;
        lv.Columns.Clear;
        lv.Items.Clear;
        rows:=sup.PS_Get_Groups('');
        ListViewAddColumns(['','','部门名称','描述','','建立者','建立时间'],[0,0,150,150,0,75,150],lv);
        ListViewAddRows(rows,lv);
        StatusBar.Panels[0].Text:='部门信息:';
        lv.Items.EndUpdate;
        Lv.Columns.EndUpdate;
        Exit;
        //tbRefresh.Click;
   end;
   if (flag=3) then begin
        lv.Items.BeginUpdate;
        Lv.Columns.BeginUpdate;
        lv.Columns.Clear;
        lv.Items.Clear;
        rows:=sup.PS_Get_Users('');
        ListViewAddColumns(['','用户名','帐号','','部门','建立者','建立日期','最后一次登陆','密码日期','密码过期时间','权限','状态'],
                            [0,150,150,0,150,75,150,0,150,150,150,150],lv);
        ListViewAddRows(rows,lv);
        StatusBar.Panels[0].Text:='用户信息:';
        lv.Items.EndUpdate;
        Lv.Columns.EndUpdate;
        Exit;
        //showmessage(sup.PS_Lasterror);
        //tbRefresh.Click;
   end;
   if (flag=4) then begin
   end;
   if (flag=5) then begin
   end;
   if (flag=6) then begin
   end;
    if (flag=7) then begin
   end;
   if flag=8 then begin
        dtype:=1;
        lv.Items.BeginUpdate;
        Lv.Columns.BeginUpdate;
        lv.Columns.Clear;
        lv.Items.Clear;
        rows:=sup.PB_Get_Roles('');
        ListViewAddColumns(['职务','描述','建立者','建立时间'],
                            [150,250,150,150],lv);
        ListViewAddRows(rows,lv);
        lv.Items.EndUpdate;
        Lv.Columns.EndUpdate;
        dType:=1;
        Exit;
   end;
   if flag=9 then begin
   end;
   if flag=10 then begin
   end;


⌨️ 快捷键说明

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