📄 umainform.~pas
字号:
unit UMainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, Menus, ExtCtrls, StdCtrls, jpeg, ImgList,
ShellApi;
type
TMainForm = class(TForm)
MMenu: TMainMenu;
MReception: TMenuItem;
TBMenu: TToolBar;
CoolBar1: TCoolBar;
MRAdjust: TMenuItem;
MRAdd: TMenuItem;
MRAmend: TMenuItem;
MRT1: TMenuItem;
MRPreconcert: TMenuItem;
MRT2: TMenuItem;
MRDay: TMenuItem;
MRMonth: TMenuItem;
MRCheckIn: TMenuItem;
MRQuery: TMenuItem;
MRQToday: TMenuItem;
MRQYesterday: TMenuItem;
MRQNonce: TMenuItem;
MRT3: TMenuItem;
MRExit: TMenuItem;
StatusBar: TStatusBar;
MConsume: TMenuItem;
MCAdd: TMenuItem;
MCDisperse: TMenuItem;
MCT1: TMenuItem;
MCchaxun: TMenuItem;
MCheckOut: TMenuItem;
MOChecking: TMenuItem;
MOCoalition: TMenuItem;
MODisjoin: TMenuItem;
MOT1: TMenuItem;
NOScattered: TMenuItem;
MOT2: TMenuItem;
MOPrepay: TMenuItem;
MOQueryPre: TMenuItem;
MOArrearage: TMenuItem;
MOT4: TMenuItem;
MOPatch: TMenuItem;
MTong: TMenuItem;
MTZt: TMenuItem;
MTQueryinfo: TMenuItem;
MTQueryCheck: TMenuItem;
MTGather: TMenuItem;
MTLingdan: TMenuItem;
MTTong: TMenuItem;
MTT1: TMenuItem;
MTPreQuery: TMenuItem;
N43: TMenuItem;
MTQueryRe: TMenuItem;
MWei: TMenuItem;
MHelp: TMenuItem;
MWPassword: TMenuItem;
MWUsers: TMenuItem;
MWSetting: TMenuItem;
MWT1: TMenuItem;
MWDesktop: TMenuItem;
MWT2: TMenuItem;
MWBak: TMenuItem;
MWComeBack: TMenuItem;
MHMotif: TMenuItem;
MHRegister: TMenuItem;
WHAbout: TMenuItem;
MOQuery: TMenuItem;
MOHang: TMenuItem;
MOT3: TMenuItem;
ImageLTools: TImageList;
TBTool: TToolBar;
TBPreconcert: TToolButton;
ToolButton10: TToolButton;
TBChickin: TToolButton;
TBPreRuzu: TToolButton;
ToolButton11: TToolButton;
TBQuery: TToolButton;
TBZt: TToolButton;
ToolButton12: TToolButton;
TBExit: TToolButton;
ImageList1: TImageList;
Image1: TImage;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure TBAdjustClick(Sender: TObject);
procedure TBChickinClick(Sender: TObject);
procedure MWSettingClick(Sender: TObject);
procedure MRPreconcertClick(Sender: TObject);
procedure MRAddClick(Sender: TObject);
procedure MOCheckingClick(Sender: TObject);
procedure MWPasswordClick(Sender: TObject);
procedure MRAmendClick(Sender: TObject);
procedure MRQTodayClick(Sender: TObject);
procedure MRQYesterdayClick(Sender: TObject);
procedure MRQNonceClick(Sender: TObject);
procedure MCAddClick(Sender: TObject);
procedure MOCoalitionClick(Sender: TObject);
procedure MCDisperseClick(Sender: TObject);
procedure MTQueryReClick(Sender: TObject);
procedure MWBakClick(Sender: TObject);
procedure MWComeBackClick(Sender: TObject);
procedure MRDayClick(Sender: TObject);
procedure MRMonthClick(Sender: TObject);
procedure MCchaxunClick(Sender: TObject);
procedure MOQueryPreClick(Sender: TObject);
procedure MODisjoinClick(Sender: TObject);
procedure MOHangClick(Sender: TObject);
procedure MOQueryClick(Sender: TObject);
procedure MTZtClick(Sender: TObject);
procedure MTQueryinfoClick(Sender: TObject);
procedure MTQueryCheckClick(Sender: TObject);
procedure MTGatherClick(Sender: TObject);
procedure MTLingdanClick(Sender: TObject);
procedure MTPreQueryClick(Sender: TObject);
procedure MOArrearageClick(Sender: TObject);
procedure MOPrepayClick(Sender: TObject);
procedure NOScatteredClick(Sender: TObject);
function Count:Boolean;
procedure TBExitClick(Sender: TObject);
procedure WHAboutClick(Sender: TObject);
procedure MHMotifClick(Sender: TObject);
private
//用来保存原有的消息相应函数的入口地址
FPrevClientProc:TFarProc;
//用来保存自己编制的消息相应函数的入口地址
FClientInstance:TFarProc;
//是自己编制的消息相应函数
Procedure ClientWndProc(Var Message:TMessage);
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses UAdjust, UCheckIn, U5_3, UPre, U1_3, U3_1, U5_1, U1_4, U2_1, U1_8,
U3_2, U2_2, U4_8,U5_5, U5_6, U1_6, U1_7, U2_3, U3_8, U3_3, U3_5, U3_6,
U3_10, U4_1, U4_3, U4_4, U4_5, U4_7, U3_9, U3_7, Ushow, ULogo, U6_3;
{$R *.dfm}
procedure TMainForm.ClientWndProc(var Message:Tmessage);
var
MyDC:hDC;
Row,Col:Word;
begin
with message do
//当该消息是WM_ERASEBKGND时绘制背景图像
if MSG=WM_ERASEBKGND then begin
//获取当前需要绘制背景的窗口的句柄
MyDC:=TWMEraseBkGnd(Message).DC;
{for Row:=0 to ClientHeight div image1.Picture.Height do
for Col:=0 to ClientWidth div image1.Picture.Width do
BitBlt(myDC,Col*Image1.Picture.Width,Row*image1.Picture.Height,
image1.Picture.Width,image1.Picture.Height,
image1.Picture.Bitmap.Canvas.Handle,0,0,SRCCopy);
Result:=1; }
bitBlt(myDC,0,0,image1.picture.width,image1.picture.height,
image1.picture.bitmap.canvas.handle,0,0,srccopy);
end
else Result:=CallWindowProc(FPrevClientProc,ClientHandle,Msg,wParam,lParam);
end;
function TMainForm.Count:Boolean;
begin
Count:=(MainForm.MDIChildCount>=1);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
with StatusBar.Panels.Items[1] do
Text:=Text+FormatDateTime('yyyy-mm-dd',NOW);
FPrevClientProc:=Pointer(GetWindowLong(ClientHandle,GWL_WNDPROC));
FClientInstance:=MakeObjectInstance(ClientWndProc);
SetWindowLong(ClientHandle,GWL_wnDPROC,LongINt(FClientInstance));
end;
//登记调换
procedure TMainForm.TBAdjustClick(Sender: TObject);
begin
FAdjust.ShowModal;
end;
//来宾接待
procedure TMainForm.TBChickinClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TFCheckIn.Create(Application);
end;
//基础数据设置
procedure TMainForm.MWSettingClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF5_3.Create(application);
end;
//预定中心
procedure TMainForm.MRPreconcertClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TFpre.Create(Application);
MainForm.Cascade;
end;
//追加资料
procedure TMainForm.MRAddClick(Sender: TObject);
begin
F1_3.ShowModal;
end;
//结账
procedure TMainForm.MOCheckingClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF3_1.Create(Application);
end;
//密码更改
procedure TMainForm.MWPasswordClick(Sender: TObject);
begin
F5_1.ShowModal;
end;
//登记资料修改
procedure TMainForm.MRAmendClick(Sender: TObject);
begin
F1_4.ShowModal;
end;
//今日来宾查询
procedure TMainForm.MRQTodayClick(Sender: TObject);
var
F1_8_1:TF1_8;
begin
if count then
begin
if (mainForm.MDIChildren[0].Caption='昨日来宾查询')
or (mainForm.MDIChildren[0].Caption='在店来宾查询')
or (mainForm.MDIChildren[0].Caption='今日来宾查询')
or (mainForm.MDIChildren[0].Caption='来宾查询')
then mainForm.MDIChildren[0].Close
else begin
messagedlg('请先保存数据',mtInformation,[mbOk],0);
exit;
end;
end;
F1_8_1:=TF1_8.Create(Application);
F1_8_1.Caption:='今日来宾查询';
with F1_8_1.CBoxkeren do
begin
Items.Clear;
Items.Add('今日来宾查询');
ItemIndex:=0;
end;
F1_8_1.SetTime;
end;
//昨日来宾查询
procedure TMainForm.MRQYesterdayClick(Sender: TObject);
var
F1_8_2:TF1_8;
begin
if count then
begin
if (mainForm.MDIChildren[0].Caption='昨日来宾查询')
or (mainForm.MDIChildren[0].Caption='在店来宾查询')
or (mainForm.MDIChildren[0].Caption='今日来宾查询')
then mainForm.MDIChildren[0].Close
else begin
messagedlg('请先保存数据',mtInformation,[mbOk],0);
exit;
end;
end;
F1_8_2:=TF1_8.Create(Application);
F1_8_2.Caption:='昨日来宾查询';
with F1_8_2.CBoxkeren do
begin
Items.Clear;
Items.Add('昨日来宾');
ItemIndex:=0;
end;
F1_8_2.SetTime;
end;
//当前在店客人查询
procedure TMainForm.MRQNonceClick(Sender: TObject);
var
F1_8_3:TF1_8;
begin
if count then
begin
if (mainForm.MDIChildren[0].Caption='昨日来宾查询')
or (mainForm.MDIChildren[0].Caption='在店来宾查询')
or (mainForm.MDIChildren[0].Caption='今日来宾查询')
then mainForm.MDIChildren[0].Close
else begin
messagedlg('请先保存数据',mtInformation,[mbOk],0);
exit;
end;
end;
F1_8_3:=TF1_8.Create(Application);
F1_8_3.Caption:='在店来宾查询';
with F1_8_3.CBoxkeren do
begin
Items.Clear;
Items.add('在店客人');
ItemIndex:=0;
end;
F1_8_3.SetTime;
end;
//点单
procedure TMainForm.MCAddClick(Sender: TObject);
var
F2_1:TF2_1;
begin
if count then
begin
messagedlg('请保存数据',mtInformation,[mbOK],0);
exit;
end;
F2_1:=TF2_1.Create(Application);
end;
//合并账单
procedure TMainForm.MOCoalitionClick(Sender: TObject);
begin
F3_2.ShowModal;
end;
//零单消费
procedure TMainForm.MCDisperseClick(Sender: TObject);
var
F2_2:TF2_2;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F2_2:=TF2_2.Create(Application);
mainForm.Cascade;
end;
//客史资料查询
procedure TMainForm.MTQueryReClick(Sender: TObject);
begin
F4_8.ShowModal;
end;
//数据备份
procedure TMainForm.MWBakClick(Sender: TObject);
begin
F5_5.ShowModal;
end;
//数据恢复
procedure TMainForm.MWComeBackClick(Sender: TObject);
begin
F5_6.ShowModal;
end;
//日状态接待表
procedure TMainForm.MRDayClick(Sender: TObject);
var
F1_6:TF1_6;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F1_6:=TF1_6.Create(Application);
MainForm.Cascade;
end;
//月状态统计表
procedure TMainForm.MRMonthClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF1_7.Create(Application);
end;
//消费查询
procedure TMainForm.MCchaxunClick(Sender: TObject);
var
F2_3:TF2_3;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F2_3:=TF2_3.Create(Application);
F2_3.Caption:='消费查询';
end;
//预付款收银表
procedure TMainForm.MOQueryPreClick(Sender: TObject);
begin
F3_8.ShowModal;
end;
//分拆账单
procedure TMainForm.MODisjoinClick(Sender: TObject);
begin
F3_3.ShowModal;
end;
//挂账单结账
procedure TMainForm.MOHangClick(Sender: TObject);
var
F3_5:TF3_5;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F3_5:=TF3_5.Create(Application);
end;
//挂账单查询
procedure TMainForm.MOQueryClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF3_6.Create(Application);
end;
//接待状态表
procedure TMainForm.MTZtClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF4_1.Create(Application);
end;
//来宾信息查询
procedure TMainForm.MTQueryinfoClick(Sender: TObject);
var
F4_2:TF1_8;
begin
if count then
begin
if (mainForm.MDIChildren[0].Caption='昨日来宾查询')
or (mainForm.MDIChildren[0].Caption='在店来宾查询')
or (mainForm.MDIChildren[0].Caption='今日来宾查询')
or (mainForm.MDIChildren[0].Caption='来宾查询')
then mainForm.MDIChildren[0].Close
else begin
messagedlg('请先保存数据',mtInformation,[mbOk],0);
exit;
end;
end;
F4_2:=TF1_8.Create(Application);
F4_2.Caption:='来宾查询';
with F4_2.CBoxkeren do
begin
Items.Clear;
Items.Add('在店客人');
Items.Add('今日来宾');
Items.Add('进店日期在');
Items.Add('离店日期在');
ItemIndex:=0;
end;
F4_2.EDtime.Text:=FormatDateTime('yyyy-mm-dd',NOW);
F4_2.EDtime1.Text:=FormatDateTime('yyyy-mm-dd',NOW);
F4_2.readinfo;
end;
//消费明细查询
procedure TMainForm.MTQueryCheckClick(Sender: TObject);
var
F4_3:TF4_3;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F4_3:=TF4_3.Create(Application);
F4_3.WindowState:=wsMaximized;
end;
//消费品汇总
procedure TMainForm.MTGatherClick(Sender: TObject);
var
F4_4:TF4_4;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F4_4:=TF4_4.Create(Application);
end;
//零单消费查询
procedure TMainForm.MTLingdanClick(Sender: TObject);
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
TF4_5.Create(Application);
end;
//预定查询
procedure TMainForm.MTPreQueryClick(Sender: TObject);
begin
F4_7.ShowModal;
end;
//欠款一览表
procedure TMainForm.MOArrearageClick(Sender: TObject);
begin
F3_9.ShowModal;
end;
//预付款收银
procedure TMainForm.MOPrepayClick(Sender: TObject);
begin
F3_7.ShowModal;
end;
procedure TMainForm.NOScatteredClick(Sender: TObject);
var
F3_4:TF2_2;
begin
if count then
begin
messageDlg('请先保存数据',mtInformation,[mbOK],0);
exit;
end;
F3_4:=TF2_2.Create(Application);
F3_4.Caption:='其它零单消费';
end;
procedure TMainForm.TBExitClick(Sender: TObject);
begin
MainForm.Close;
MainForm.Free;
end;
procedure TMainForm.WHAboutClick(Sender: TObject);
begin
Fgy.ShowModal;
end;
procedure TMainForm.MHMotifClick(Sender: TObject);
begin
ShellExecute(handle,'open','help.chm',nil,nil,SW_ShowNormal);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -