📄 userpas.pas
字号:
unit USERPAS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, EASY_GASMAIN, Grids, DBGridEh, DB, ADODB, DBCtrls, ExtCtrls,
ComCtrls, ETreeView, ActnList, DBActns, ToolWin;
type
TUSERDlg = class(TForm)
USERS: TADODataSet;
USERSS: TDataSource;
Panel2: TPanel;
Panel1: TPanel;
DBImage1: TDBImage;
Panel3: TPanel;
TV: TCheckTreeView;
ActionList1: TActionList;
RefreshData: TAction;
WriteData: TAction;
Panel4: TPanel;
DBG: TDBGridEh;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
DataSetFirst1: TDataSetFirst;
DataSetPrior1: TDataSetPrior;
DataSetNext1: TDataSetNext;
DataSetLast1: TDataSetLast;
DataSetPost1: TDataSetPost;
AppendData: TAction;
DataSetDelete1: TDataSetDelete;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ChangePS: TAction;
ToolButton9: TToolButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RefreshDataExecute(Sender: TObject);
procedure WriteDataExecute(Sender: TObject);
procedure USERSAfterScroll(DataSet: TDataSet);
procedure TVClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBImage1DblClick(Sender: TObject);
procedure DBGKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGColExit(Sender: TObject);
procedure AppendDataExecute(Sender: TObject);
procedure ChangePSExecute(Sender: TObject);
procedure ChangePSUpdate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
USERDlg: TUSERDlg;
implementation
uses IMGPAS;
{$R *.dfm}
procedure TUSERDlg.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TUSERDlg.RefreshDataExecute(Sender: TObject);
var T:TStrings;
I:Integer;
begin
With USERS do
Begin
T:=TStringlist.Create;
try
T.Assign(TBlobField(fieldbyname('权限')));
For I:=0 to TV.Items.Count-1 do
begin
if TV.Items[I].Level=1 then
TV.Checked[TV.Items[i]]:=T.IndexOf(GetFull(TTreeView(TV),TV.items[I]))>-1;
end;
finally
T.free;
end;
end;
end;
procedure TUSERDlg.WriteDataExecute(Sender: TObject);
var T:TStrings;
I:Integer;
begin
With USERS do
Begin
T:=TStringlist.Create;
try
For I:=0 to TV.Items.Count-1 do
begin
if (TV.Items[I].Level=1) and (TV.Checked[TV.Items[i]]) then
T.Add(GetFull(TTreeView(TV),TV.items[I]));
end;
Edit;
TBlobField(fieldbyname('权限')).Assign(T);
Post;
finally
T.free;
end;
end;
end;
procedure TUSERDlg.USERSAfterScroll(DataSet: TDataSet);
begin
RefreshData.Execute;
end;
procedure TUSERDlg.TVClick(Sender: TObject);
begin
WriteData.execute;
end;
procedure TUSERDlg.FormCreate(Sender: TObject);
begin
USERS.open;
RefreshData.execute;
end;
procedure TUSERDlg.DBImage1DblClick(Sender: TObject);
begin
With TImgdlg.create(Application) do
begin
try
Image.Picture.Bitmap.Assign(TBlobfield(DBImage1.Field));
image.Invalidate;
if showmodal=mrok then
with USERS do
Begin
Edit;
TBlobField(FieldByName('照片')).Assign(Image.Picture.Bitmap);
DBImage1.Invalidate;
end;
finally
free;
end;
end;
end;
procedure TUSERDlg.DBGKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Case Key of
VK_RETURN:POSTMESSAGE(DBG.handle,WM_KEYDOWN,VK_TAB,0);
end;
end;
procedure TUSERDlg.DBGColExit(Sender: TObject);
var area:Tarea;
begin
if (DBG.SelectedField.FieldName='区域')
or (DBG.SelectedField.FieldName='地点')
then
Begin
Area:=SelArea;
if trim(Area.AREA+area.SUB_AREA)<>'' then
With DBG.DataSource.DataSet do
Begin
Edit;
Fieldbyname('区域').AsString:=area.AREA;
Fieldbyname('地点').AsString:=area.SUB_AREA;
end;
end;
end;
procedure TUSERDlg.AppendDataExecute(Sender: TObject);
begin
USERS.Append;
end;
procedure TUSERDlg.ChangePSExecute(Sender: TObject);
begin
ChangePassword(USERS.FieldByName('序号').AsInteger);
end;
procedure TUSERDlg.ChangePSUpdate(Sender: TObject);
begin
TAction(Sender).Enabled:=Not USERS.IsEmpty;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -