lxform.pas
来自「一个物流公司的物流配送系统」· PAS 代码 · 共 177 行
PAS
177 行
unit lxForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ComCtrls,DateUtils;
type
TFrmlx = class(TForm)
ds: TDataSource;
dg: TDBGrid;
editPanel: TPanel;
btnPanel: TPanel;
addbtn: TButton;
editbtn: TButton;
okbtn: TButton;
delbtn: TButton;
cancelbtn: TButton;
Label2: TLabel;
mcedit: TEdit;
procedure inputrealKeyPress(Sender: TObject; var Key: Char);
Procedure inputintKeyPress(Sender:TObject;var Key: Char);
Procedure NextFocusKeyPress(Sender:TObject;var Key:Char);
procedure FormShow(Sender: TObject);
procedure dgCellClick(Column: TColumn);
procedure addbtnClick(Sender: TObject);
procedure editbtnClick(Sender: TObject);
procedure delbtnClick(Sender: TObject);
procedure okbtnClick(Sender: TObject);
procedure cancelbtnClick(Sender: TObject);
procedure dgDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
Procedure showdb;
public
{ Public declarations }
end;
var
Frmlx: TFrmlx;
implementation
uses DataModule, ShareData;
{$R *.dfm}
{ TFrmBasic }
procedure TFrmlx.showdb;
begin
With DM.cquery do
begin
Active:=False;
SQL.Clear;
sql.Add('select * from lxb order by lxid');
active:=True;
end;
end;
procedure TFrmlx.inputintKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
key:=inputintkeys(sender,key);
end;
procedure TFrmlx.inputrealKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
key:=inputrealkeys(sender,key);
end;
procedure TFrmlx.NextFocusKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender);
end;
procedure TFrmlx.FormShow(Sender: TObject);
begin
clearControls(EditPanel);
EnabledControls(EditPanel,False);
initButtons(btnPanel);
showdb;
end;
procedure TFrmlx.dgCellClick(Column: TColumn);
begin
if DM.cquery.IsEmpty then exit;
mcedit.Text:=DM.cquery.FieldByName('lxmc').AsString;
Enabledcontrols(editPanel,False);
DBClick(btnPanel);
end;
procedure TFrmlx.addbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
clearcontrols(EditPanel);
addClick(btnPanel);
end;
procedure TFrmlx.editbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
editClick(btnPanel);
end;
procedure TFrmlx.delbtnClick(Sender: TObject);
begin
if dm.cquery.IsEmpty then exit;
if messagedlg('确认要删除此记录吗?',mtWarning,MBOKCancel,0)=id_ok then
begin
with dm.tempquery do
begin
active:=False;
sql.Clear;
sql.Add('delete from lxb where lxid=:lxid');
parameters.ParamByName('lxid').Value:=dm.cquery.fieldbyname('lxid').AsInteger;
execsql;
end;
ShowMessage('删除成功!');
end;
updatequery;
delclick(btnPanel);
end;
procedure TFrmlx.okbtnClick(Sender: TObject);
begin
if mcedit.Text = '' then
begin
messagedlg('类型名称不能为空,请输入!',mtWarning,[mbok],0);
mcedit.SetFocus;
exit;
end;
with dm.tempquery do
begin
Active:=False;
sql.Clear;
if flag then
begin
sql.Add('insert into lxb(lxmc) '+
'values(:mc) ');
end
else
begin
sql.Add('update lxb set lxmc=:mc');
sql.Add(' where lxid=:lxid');
parameters.ParamByName('lxid').Value:=dm.cquery.fieldbyname('lxid').AsInteger;
end;
parameters.ParamByName('mc').Value:=mcedit.Text ;
execsql;
end;
updatequery;
okClick(btnpanel);
enabledcontrols(editpanel,false);
end;
procedure TFrmlx.cancelbtnClick(Sender: TObject);
begin
enabledcontrols(editpanel,false);
cancelClick(btnpanel);
end;
procedure TFrmlx.dgDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (DM.cquery.RecNo mod 2)=0 then
dg.Canvas.Brush.Color:=clWhite
else
dg.Canvas.Brush.Color:=clSilver;
dg.DefaultDrawColumnCell(Rect,DAtaCol,Column,State);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?