📄 frmmenu.~pas
字号:
unit frmMenu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, cxDBData, Mask, DBCtrls, ExtCtrls, StdCtrls,
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, Buttons;
type
TMenuForm = class(TForm)
DS: TDataSource;
Panel1: TPanel;
Panel_input: TPanel;
grd: TcxGrid;
grdTV_Menu: TcxGridDBTableView;
grdTV_MenuID: TcxGridDBColumn;
grdTV_MenuName: TcxGridDBColumn;
grdTV_MenuPrice: TcxGridDBColumn;
grdTV_MenuRemark: TcxGridDBColumn;
Lev: TcxGridLevel;
Panel3: TPanel;
Memo_Remark: TMemo;
Edt_ID: TLabeledEdit;
Edt_Name: TLabeledEdit;
Edt_Price: TLabeledEdit;
Label1: TLabel;
DBEdt_Key: TDBEdit;
btn_Add: TSpeedButton;
btn_Delete: TSpeedButton;
btn_Save: TSpeedButton;
procedure Edt_PriceKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure DBEdt_KeyChange(Sender: TObject);
procedure btn_AddClick(Sender: TObject);
procedure Edt_IDKeyPress(Sender: TObject; var Key: Char);
procedure Edt_NameKeyPress(Sender: TObject; var Key: Char);
procedure btn_SaveClick(Sender: TObject);
procedure btn_DeleteClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
UpdateOrAppend : boolean; //true:Append false:Update;
procedure BindDetail;
procedure ClearDetail;
procedure EnableEdit;
procedure DisableEdit;
public
{ Public declarations }
end;
var
MenuForm: TMenuForm;
implementation
uses DataModule;
{$R *.dfm}
procedure TMenuForm.BindDetail;
begin
edt_ID.Text := DS.DataSet.FieldByName('ID').AsString;
edt_Name.Text := DS.DataSet.FieldByName('Name').AsString;
edt_Price.Text := DS.DataSet.FieldByName('Price').AsString;
Memo_Remark.Text := DS.DataSet.FieldByName('Remark').AsString;
end;
procedure TMenuForm.ClearDetail;
begin
edt_ID.Text := '';
edt_Name.Text := '';
edt_Price.Text := '';
Memo_Remark.Text := '';
end;
procedure TMenuForm.EnableEdit;
begin
edt_ID.Enabled :=true;
edt_Name.Enabled :=true;
edt_Price.Enabled :=true;
Memo_Remark.Enabled :=true;
end;
procedure TMenuForm.DisableEdit;
begin
edt_ID.Enabled :=false;
edt_Name.Enabled :=false;
edt_Price.Enabled :=false;
Memo_Remark.Enabled :=false;
end;
procedure TMenuForm.FormCreate(Sender: TObject);
begin
UpdateOrAppend:= false;
DisableEdit;
DS.DataSet.Active:= true;
//
end;
procedure TMenuForm.DBEdt_KeyChange(Sender: TObject);
begin
if TDBEdit(Sender).Text = '' then
begin
ClearDetail;
DisableEdit;
end
else begin
Edt_ID.Enabled:=false;
BindDetail;
EnableEdit;
end;
UpdateOrAppend:= false;
end;
procedure TMenuForm.Edt_PriceKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
Key:=#0
else
if key = #13 then
begin
key:=#0;
Btn_Save.OnClick(nil);
end;
end;
procedure TMenuForm.Edt_IDKeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then
begin
key:=#0;
edt_Name.SetFocus;
end;
end;
procedure TMenuForm.Edt_NameKeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then
begin
key:=#0;
edt_Price.SetFocus;
end;
end;
procedure TMenuForm.btn_SaveClick(Sender: TObject);
var
msg:string;
oldID:string;
begin
try
if UpdateOrAppend then
begin
if (trim(Edt_Name.Text)='') or (trim(Edt_Price.Text)='') or (trim(Edt_Price.Text)='') then
begin
msg:='请输入完整信息!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
if not DM.checkMenuKey(trim(Edt_ID.Text)) then
begin
msg:='编号不能重复!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
DM.Que.Close;
DM.Que.SQL.Text:='insert into menu(ID,Name,Price,Remark)'+
'values('''+Edt_ID.Text+''','''+Edt_Name.Text+''','+Edt_Price.Text+','''+Memo_Remark.Text+''')';
DM.Que.ExecSQL;
DS.DataSet.Active :=false;
DS.DataSet.Active :=true;
Btn_Add.OnClick(nil);
end
else begin
if (trim(Edt_ID.Text)='') or (trim(Edt_Name.Text)='') then
begin
msg:='请输入完整信息!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
oldID:=Edt_ID.Text;
DM.Que.Close;
DM.Que.SQL.Text:='update menu set ID='''+Edt_ID.Text+''',Name='''+Edt_Name.Text+
''',Price='+Edt_Price.Text+',Remark='''+Memo_Remark.Text+''' where ID='''+Edt_id.Text+'''';
DM.Que.ExecSQL;
DS.DataSet.Active :=false;
DS.DataSet.Active :=true;
DS.DataSet.Locate('ID',OldID,[loCaseInsensitive]);
end;
except
msg:='操作失败!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
end;
end;
procedure TMenuForm.btn_AddClick(Sender: TObject);
begin
ClearDetail;
EnableEdit;
UpdateOrAppend:= true;
edt_ID.SetFocus;
end;
procedure TMenuForm.btn_DeleteClick(Sender: TObject);
var
msg:string;
begin
if DBEdt_Key.Text<>'' then
begin
DM.Que.Close;
DM.Que.SQL.Text:='select * from tOrderDetail where menuID='''+DBEdt_Key.Text+'''';
DM.Que.Open;
if DM.Que.RecordCount >0 then
begin
msg:='该信息正在使用,不能被删除!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
msg:='删除菜单会导致跟菜单相关的信息被删除,确定该操作吗?';
if MessageBox(Application.Handle,Pchar(msg),Pchar('系统提示'),mb_OKCancel) = ID_OK then
if DS.DataSet.RecordCount >0 then DS.DataSet.Delete;
end;
end;
procedure TMenuForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DS.DataSet.Active:= false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -