📄 u_user.~pas
字号:
unit u_user;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ToolWin, ComCtrls, ImgList, ActnList, Buttons,
StdCtrls, shareunit, DB, FMTBcd, DBClient, Provider, SqlExpr, DBTables,
cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
cxTextEdit, cxCurrencyEdit, ADODB, cxMaskEdit;
type
Tfuser = class(TForm)
Panel1: TPanel;
ToolBar1: TToolBar;
ImageList1: TImageList;
ImageList2: TImageList;
TBtn_Add: TToolButton;
ActionList1: TActionList;
Act_Add: TAction;
Act_Del: TAction;
Act_Save: TAction;
Act_Cancel: TAction;
Act_Refresh: TAction;
Act_Close: TAction;
TBtn_Del: TToolButton;
TBtn_Save: TToolButton;
TBtn_Cancel: TToolButton;
TBtn_Refresh: TToolButton;
ToolButton1: TToolButton;
Panel2: TPanel;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
LabeledEdit1: TLabeledEdit;
ds: TDataSource;
tb: TTable;
DView: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
tbMuser: TStringField;
tbName: TStringField;
DViewMuser: TcxGridDBColumn;
DViewName: TcxGridDBColumn;
procedure Act_AddExecute(Sender: TObject);
procedure Act_AddUpdate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Act_DelExecute(Sender: TObject);
procedure Act_DelUpdate(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure Act_SaveUpdate(Sender: TObject);
procedure Act_CancelExecute(Sender: TObject);
procedure Act_CancelUpdate(Sender: TObject);
procedure Act_RefreshExecute(Sender: TObject);
procedure Act_RefreshUpdate(Sender: TObject);
procedure Act_CloseExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
procedure tbAfterInsert(DataSet: TDataSet);
procedure tbBeforeInsert(DataSet: TDataSet);
procedure tbAfterPost(DataSet: TDataSet);
procedure tbAfterCancel(DataSet: TDataSet);
procedure tbBeforePost(DataSet: TDataSet);
procedure DViewMuserPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fuser: Tfuser;
implementation
{$R *.dfm}
procedure Tfuser.Act_AddExecute(Sender: TObject);
begin
ds.DataSet.Append;
end;
procedure Tfuser.Act_AddUpdate(Sender: TObject);
begin
TBtn_Add.Enabled:=not(ds.State in [dsInsert, dsEdit]);
end;
procedure Tfuser.FormCreate(Sender: TObject);
begin
with tb do
begin
DataBaseName:=ExtractFilePath(Application.ExeName);
if not Active then Open;
end;
end;
procedure Tfuser.Act_DelExecute(Sender: TObject);
begin
if PromptMsg('Are you sure you want to delete? ',3)=IDYes then ds.DataSet.Delete;
end;
procedure Tfuser.Act_DelUpdate(Sender: TObject);
begin
TBtn_Del.enabled:=not((ds.State in [dsInsert, dsEdit]) or ds.DataSet.IsEmpty)
end;
procedure Tfuser.Act_SaveExecute(Sender: TObject);
begin
ds.DataSet.Post;
end;
procedure Tfuser.Act_SaveUpdate(Sender: TObject);
begin
TBtn_Save.Enabled:=ds.State in [dsInsert, dsEdit]
end;
procedure Tfuser.Act_CancelExecute(Sender: TObject);
begin
if PromptMsg('Are you sure you want to cancel?!',3)=IDNo then exit
else ds.DataSet.Cancel;
end;
procedure Tfuser.Act_CancelUpdate(Sender: TObject);
begin
TBtn_Cancel.Enabled:=ds.State in [dsInsert, dsEdit]
end;
procedure Tfuser.Act_RefreshExecute(Sender: TObject);
begin
screen.Cursor:=crHourglass;
try
ds.DataSet.Refresh;
finally
screen.Cursor:=crDefault;
end;
end;
procedure Tfuser.Act_RefreshUpdate(Sender: TObject);
begin
TBtn_Refresh.Enabled:=not(ds.State in [dsInsert, dsEdit])
end;
procedure Tfuser.Act_CloseExecute(Sender: TObject);
begin
Close;
end;
procedure Tfuser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure Tfuser.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
if not ds.DataSet.Locate('muser',LabeledEdit1.Text,[]) then
begin
PromptMsg('No record!',0);
LabeledEdit1.SetFocus;
end;
end;
procedure Tfuser.tbAfterInsert(DataSet: TDataSet);
begin
DviewMuser.Properties.ReadOnly:=false;
DataSet.Fields[0].FocusControl;
end;
procedure Tfuser.tbBeforeInsert(DataSet: TDataSet);
var
i: integer;
begin
with DataSet do
for i:=0 to Fields.Count-1 do Fields[i].ReadOnly:=False;
end;
procedure Tfuser.tbAfterPost(DataSet: TDataSet);
begin
DviewMuser.Properties.ReadOnly:=true;
end;
procedure Tfuser.tbAfterCancel(DataSet: TDataSet);
begin
DviewMuser.Properties.ReadOnly:=true;
end;
procedure Tfuser.tbBeforePost(DataSet: TDataSet);
begin
with DataSet do
begin
if (Fields[0].IsNull) or (Fields[0].AsString='') then
begin
PromptMsg(Fields[0].DisplayLabel+'can not empty!');
Fields[0].FocusControl;
Abort;
end;
if not DviewMuser.Properties.ReadOnly then
begin
if ExistData('select * from tuser where muser='''+Fields[0].AsString+'''',[]) then
begin
PromptMsg('该笔记录唯一索引重复,新增失败!',1);
Fields[0].FocusControl;
Abort;
end;
end;
end;
end;
procedure Tfuser.DViewMuserPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
{var
b: Boolean;}
begin
{if Error then
begin
PromptMsg('数据格式不合法!',2);
abort;
end;}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -