📄 security.pas
字号:
unit security;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, RXCtrls, ExtCtrls, Db, DBTables, Grids, DBGrids,
ComCtrls, ImgList, ToolWin, Menus, Buttons, ADODB, Wwdbigrd, Wwdbgrid
;
type
TFormsecurity = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel2: TPanel;
ListBox4: TListBox;
Splitter1: TSplitter;
Splitter2: TSplitter;
Panel1: TPanel;
Panel3: TPanel;
Label3: TLabel;
Label1: TLabel;
Label2: TLabel;
Panel4: TPanel;
DBGrid2: TDBGrid;
Splitter3: TSplitter;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
ToolBar1: TToolBar;
tblpnt: TToolButton;
Find: TToolButton;
ToolButton2: TToolButton;
ToolButton4: TToolButton;
DBNavigator1: TDBNavigator;
Panel5: TPanel;
Button1: TButton;
Panel6: TPanel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
ListBox1: TListBox;
ListBox2: TListBox;
ListBox3: TListBox;
Panel7: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Label8: TLabel;
DSpassword: TDataSource;
DSsecurit: TDataSource;
ADOpassword: TADODataSet;
ADOpasswordno: TStringField;
ADOpasswordname: TStringField;
ADOpasswordpassword: TStringField;
ADOsecurit: TADODataSet;
ADOsecuritno: TStringField;
ADOsecuritmenucaptionbig: TStringField;
ADOsecuritmenuparentbig: TStringField;
ADOsecuritmenusubparentbig: TStringField;
DBGrid1: TwwDBGrid;
ADOsecuritR_Add: TBooleanField;
ADOsecuritR_Edit: TBooleanField;
ADOsecuritR_Del: TBooleanField;
ADOsecuritR_Print: TBooleanField;
DBGrid1IButton: TwwIButton;
ToolButton1: TToolButton;
PopupMenu1: TPopupMenu;
N3: TMenuItem;
N4: TMenuItem;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
PopupMenu2: TPopupMenu;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure modifyClick(Sender: TObject);
procedure copyClick(Sender: TObject);
procedure tblexitClick(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure ListBox2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FindClick(Sender: TObject);
procedure DBGrid2TitleClick(Column: TColumn);
procedure DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ADOpasswordBeforeDelete(DataSet: TDataSet);
procedure ADOpasswordBeforePost(DataSet: TDataSet);
procedure ADOpasswordnoChange(Sender: TField);
procedure ADOsecuritBeforePost(DataSet: TDataSet);
procedure ToolButton1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
f:string;
public
{ Public declarations }
function menuname(menun,parentmenu,subparentmenu:string):string;
procedure menuitem(pos:integer;menuname:string;Var two:integer);
end;
var
Formsecurity: TFormsecurity;
insert:boolean;
implementation
uses datamol, main, copysecurity, publicfunction, canfind;
{$R *.DFM}
procedure TFormsecurity.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
adosecurit.close;
adopassword.close;
formsecurity:=nil;
action:=cafree;
end;
procedure TFormsecurity.FormCreate(Sender: TObject);
var
i:integer;
begin
f:='ASC';
with formmain do
for i:=0 to MainMenu1.items.count-1 do
begin
if MainMenu1.items[i].visible=true then
listbox1.Items.add(MainMenu1.items[i].caption);
end;
adopassword.open;
adosecurit.open;
end;
procedure TFormsecurity.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (sender<>dbgrid1) then
begin
key:=#0;
selectnext(activecontrol,true,true);
end;
end;
procedure TFormsecurity.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
dbgrid_keypress(sender,key);
end;
procedure TFormsecurity.modifyClick(Sender: TObject);
begin
adopassword.Edit;
end;
procedure TFormsecurity.copyClick(Sender: TObject);
begin
if not assigned(formcopysecurity) then
formcopysecurity:=TFormcopysecurity.Create(application);
formcopysecurity.show;
end;
procedure TFormsecurity.tblexitClick(Sender: TObject);
begin
close;
end;
procedure TFormsecurity.ListBox1Click(Sender: TObject);
var
i,j:integer;
begin
with formmain do
begin
j:=listbox1.itemindex;
listbox2.items.clear;
listbox3.items.clear;
if j>=0 then
begin
for i:=0 to MainMenu1.items[j].Count-1 do
begin
if (MainMenu1.items[j].items[i].caption<>'-') and (MainMenu1.items[j].items[i].visible=true) then
listbox2.Items.Add(MainMenu1.items[j].items[i].caption);
end;
end;
end;
end;
procedure TFormsecurity.ListBox2Click(Sender: TObject);
var
i,j,k,two:integer;
begin
with formmain do
begin
two:=-1;
i:=listbox1.itemindex;
j:=listbox2.ItemIndex;
listbox3.items.clear;
menuitem(i,listbox2.items[j],two);
if (MainMenu1.Items[i].Items[two].Count>0) then
begin
for k:=0 to MainMenu1.items[i].items[two].Count-1 do
begin
if (MainMenu1.items[i].items[two].items[k].Caption<>'-') and (MainMenu1.items[i].items[two].items[k].visible=true) then
listbox3.items.add(MainMenu1.items[i].items[two].items[k].caption);
end;
end;
end;
end;
procedure TFormsecurity.SpeedButton1Click(Sender: TObject);
var
i,j,k:integer;
begin
if listbox1.SelCount>1 then
begin
for I := 0 to Listbox1.Items.Count - 1 do
if Listbox1.Selected[I] then
if listbox4.items.indexof(listbox1.items[i])=-1 then
Listbox4.items.add(Listbox1.items[i])
end
else
begin
if (listbox1.selcount=1) then
if (listbox2.SelCount=0) then
begin
if listbox4.items.indexof(listbox1.items[listbox1.itemindex])=-1 then
listbox4.items.add(listbox1.items[listbox1.itemindex])
end
else
begin
if listbox2.SelCount>1 then
begin
for j:=0 to listbox2.items.count-1 do
if listbox2.selected[j] then
if listbox4.items.indexof(listbox1.items[listbox1.itemindex]+'-'+listbox2.items[j])=-1 then
listbox4.items.add(listbox1.Items[listbox1.itemindex]+'-'+listbox2.items[j])
end
else
begin
if listbox2.SelCount=1 then
if listbox3.SelCount=0 then
begin
if listbox4.items.indexof(listbox1.items[listbox1.itemindex]+'-'+listbox2.items[listbox2.itemindex])=-1 then
listbox4.items.add(listbox1.items[listbox1.itemindex]+'-'+listbox2.Items[listbox2.itemindex])
end
else
begin
for k:=0 to listbox3.items.count-1 do
if listbox3.selected[k] then
if listbox4.items.indexof(listbox1.items[listbox1.itemindex]+'-'+listbox2.items[listbox2.itemindex]+'-'+listbox3.items[k])=-1 then
listbox4.items.add(listbox1.items[listbox1.itemindex]+'-'+listbox2.items[listbox2.itemindex]+'-'+listbox3.items[k]);
end
end;
end;
end;
end;
procedure TFormsecurity.SpeedButton2Click(Sender: TObject);
var
i:integer;
begin
for i:=listbox4.items.count-1 downto 0 do
begin
if listbox4.Selected[i] then
listbox4.Items.Delete(i);
end;
end;
procedure TFormsecurity.SpeedButton3Click(Sender: TObject);
begin
listbox4.Items.Clear;
end;
procedure TFormsecurity.Button1Click(Sender: TObject);
var
i:integer;
menu,parent,subparent:string;
begin
with datamod do
begin
if adopassword.modified then
adopassword.post;
Query1.close;
Query1.sql.clear;
if listbox4.items.Count>0 then
Query1.sql.add('Delete from sys03012 where no='''+adopasswordno.AsString+''' ');
for i:=0 to listbox4.items.count-1 do //保存菜单名,以及添加删除,等的权限.
begin
parent:='';
subparent:='';
menu:=listbox4.items[i];
if pos('-',menu)>0 then
begin
parent:=copy(menu,1,pos('-',menu)-1);
delete(menu,1,length(parent)+1);
if pos('-',menu)>0 then
begin
subparent:=copy(menu,1,pos('-',menu)-1);
delete(menu,1,length(subparent)+1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -