📄 mainfrm.pas
字号:
unit Mainfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus,ShellApi,ComCtrls,DB, Grids, DBGrids, ExtCtrls, Buttons,
StdCtrls, RXCtrls,PublicFuncfrm, ScktComp, jpeg,KaoqinFlashfrm;
const
APPNAME = '苏视传媒';
IID = 100;
MouseMsg = WM_USER+1;
type
TMainForm = class(TForm)
PopupMenu1: TPopupMenu;
Exit: TMenuItem;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
StatusBar1: TStatusBar;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
Panel1: TPanel;
N20: TMenuItem;
N21: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N29: TMenuItem;
SSShu: TServerSocket;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N37: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
Image1: TImage;
Label3: TLabel;
RichEdit1: TRichEdit;
Image2: TImage;
N42: TMenuItem;
N43: TMenuItem;
N44: TMenuItem;
N45: TMenuItem;
N46: TMenuItem;
N47: TMenuItem;
N48: TMenuItem;
TimeKaoqinFlash: TTimer;
N49: TMenuItem;
N36: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N25Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure SSShuClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure N29Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
procedure N32Click(Sender: TObject);
procedure N35Click(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N38Click(Sender: TObject);
procedure N39Click(Sender: TObject);
procedure N40Click(Sender: TObject);
procedure N41Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N43Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N47Click(Sender: TObject);
procedure N45Click(Sender: TObject);
procedure N48Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure TimeKaoqinFlashTimer(Sender: TObject);
procedure N49Click(Sender: TObject);
procedure N36Click(Sender: TObject);
private
KaoqinFlashForm:TKaoqinFlashForm;
procedure InstallIcon;
procedure LookForAMan;
procedure MouseMessage(var message:TMessage);message MouseMsg;
procedure SetMenu;
procedure ShowKaoqinFlashForm; //一旦执行,从Kaoqin表中提取当天有罚款的员工,
//并调用KaoqinFlashForm每隔3秒显示一个,
//并缩小按序输出至Image1的Canvas
{ Private declarations }
public
procedure CreateParams(var Params:TCreateParams);override;
{ Public declarations }
end;
var
MainForm: TMainForm;
nTida:TNotifyIconDataA;
implementation
uses DataModule1,GetManfrm,Loginfrm,Paramsfrm, CheckDutyfrm, DayReportfrm,
Bbsfrm, Penaltyfrm, PenaltyFlashfrm, Shoushifrm, ShoushiRptfrm, Applyfrm,
ApplyRptfrm,qryConditionfrm,Selectfrm,GivePrizefrm,Invoicefrm,QryGridfrm,
Tichengfrm,Analysefrm;
{$R *.dfm}
procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WinClassName:=APPNAME;
end;
procedure TMainForm.MouseMessage(var message: TMessage);
var
Mousept:TPoint;
begin
inherited;
if message.LParam = wm_rbuttonup then
begin //用鼠标右键点击图标
getcursorpos(mousept); //获取光标位置
popupmenu1.popup(mousept.x, mousept.y);
end;
if message.LParam = wm_Lbuttonup then
begin
Showwindow(Handle,SW_SHOW);
ShowWindow(Application.handle, SW_SHOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE,
not (GetWindowLong(Application.handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW));
end;
message.Result:=0;
end;
procedure TMainForm.InstallIcon;
begin
Icon:=TIcon.Create;
Icon.LoadFromFile('MIcon.ico');
nTiDa.cbSize:=Sizeof(nTida);
nTida.Wnd:=Handle;
nTida.uID:=IID;
nTida.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
nTida.hIcon:=Icon.Handle;
nTida.uCallbackMessage:=MouseMsg;
nTida.szTip:='苏视广告';
Shell_NotifyIcon(NIM_ADD,@nTida);
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.TBWorker.Close;
DM.TBWorker_L.Close;
DM.TBSysParams.Close;
Action := caNone; //不对窗体进行任何操作
ShowWindow(Handle, SW_HIDE); //隐藏主窗体
ShowWindow(Application.Handle, SW_HIDE); //隐藏应用程序窗口在任务栏上的显示
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW);
end;
procedure TMainForm.ExitClick(Sender: TObject);
begin
ntida.cbSize := sizeof(tnotifyicondataa);
ntida.wnd := handle;
ntida.uID := iid;
ntida.uFlags := nif_icon + nif_tip + nif_message;
ntida.uCallbackMessage := mousemsg;
ntida.hIcon := Application.Icon.handle;
ntida.szTip := 'Icon';
shell_notifyicona(NIM_DELETE, @ntida);
Application.Terminate;//删除已有的应用程序图标
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
CurrentLev:=101;
InstallIcon;
GetParams;
end;
procedure TMainForm.N4Click(Sender: TObject);
var
I:byte;
begin
LoginForm:=TLoginForm.Create(Application);
try
LoginForm.ShowModal;
if LoginForm.ModalResult =mrOK then
begin
I:=DM.PasswordRight(LoginForm.ComboBox1.Text,LoginForm.Edit1.Text);
case I of
0:StatusBar1.Panels[0].Text :=' '+'当前操作员: '+CurrentWorker;
1:Messagebox(Application.Handle,'密码输入不正确!',
'提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL);
2:Messagebox(Application.Handle,'查无此人',
'提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
end;
end;
finally
LoginForm.Free;
end;
SetMenu;
end;
procedure TMainForm.N13Click(Sender: TObject);
begin
CurrentAct:=0;
GetManForm:=TGetManForm.Create(Application);
try
GetManForm.ShowModal;
finally
GetManForm.Free;
end;
end;
procedure TMainForm.N14Click(Sender: TObject);
begin
CurrentAct:=1;
LookforAMan;
end;
procedure TMainForm.N18Click(Sender: TObject);
begin
CurrentAct:=2;
LookforAMan;
end;
procedure TMainForm.N15Click(Sender: TObject);
begin
CurrentAct:=3;
LookforAMan;
end;
procedure TMainForm.LookForAMan; //不用ManinfoList
var
Aname:String;
CanGet:boolean;
begin
CanGet:=False;
Aname:=inputBox('输入信息','请输入要修改的员工姓名或卡号','');
with DM.TBWorker do
begin
Open;
if Locate('M_Name',AName,[locaseinsensitive]) then Canget:=true;
if Locate('M_No',AName,[locaseinsensitive]) then Canget:=True;
end;
if CanGet then
begin
GetManForm:=TGetManForm.Create(Application);
try
GetManForm.ShowModal;
finally
GetManForm.Free;
end;
end
else MessageBox(Application.Handle,'查无此人',
'提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL);
end;
procedure TMainForm.N16Click(Sender: TObject);
begin
ParamsForm:=TParamsForm.Create(Application);
try
paramsForm.ShowModal;
finally
ParamsForm.Free;
end;
end;
procedure TMainForm.N17Click(Sender: TObject);
begin
DM.GetDataFromServer;
end;
procedure TMainForm.N19Click(Sender: TObject);
var
yy:boolean;
begin
with DM.qryKaoqin do
begin
Close;
SQL.Clear;
SQL.Add('Select * from Kaoqin');
SQL.Add('Where (K_Date=:varDate) and (K_Penalty>:varPenalty)');
params[0].AsDateTime :=Date;
Params[1].AsInteger :=0;
Open;
First;
if fieldByName('K_Check').AsString='已批复' then yy:=True else yy:=False;
end;
if not yy then
begin
if not DM.qryKaoqin.Eof then
begin
CheckDutyForm:=TCheckDutyForm.Create(Application);
try
CheckDutyForm.ShowModal;
finally
CheckDutyForm.Free;
end;
end
else
begin
if Time<0.458 then
MessageBox(Application.Handle,'考勤数据将在10:00时送达',
'提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL)
else
MessageBox(Application.Handle,pchar(ErrLate),
'提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
end;
end
else MessageBox(Application.Handle,'今天已经有人核查过考勤数据了',
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -