mainform.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 404 行
CPP
404 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "MainForm.h"
#include "KSFunction.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMainForm *frmMainForm;
//---------------------------------------------------------------------------
__fastcall TfrmMainForm::TfrmMainForm(TComponent* Owner)
: TForm(Owner)
{
try
{
FClientComm=new TKSClientMgr(Application->Handle);
SetSystemStatus(0);
bHaveMenu=false;
}
catch(...)
{
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::MenuItemClick(TObject *Sender)
{
TMenuItem *p=dynamic_cast<TMenuItem*>(Sender);
ShowChildForm(p->Tag);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ShowChildForm(int formid)
{
try
{
switch(formid)
{
case 11601://初始化系统
ShowClientForm(FClientComm->Handle,11601,"");
break;
default:
ShowClientForm(FClientComm->Handle,formid,"");
}
}
__finally
{
}
Image_BakGup->Destroying();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::suLogInClick(TObject *Sender)
{
FClientComm->LogIn();
frmMainForm->Refresh();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::SetSystemStatus(int status)
{
TMenuItem *p1,*p2;
if(status==0)
{
for(int i=0;i<MainMenu->Items->Count;i++)
{
p1=MainMenu->Items->Items[i];
for(int j=0;j<p1->Count;j++)
{
p2=p1->Items[j];
if(p2->Name=="suLogIn" || p2->Name=="suSetup" || p2->Name=="suConn")
p2->Enabled=true;
else
p2->Enabled=false;
}
}
}
else
{
for(int i=0;i<MainMenu->Items->Count;i++)
{
p1=MainMenu->Items->Items[i];
for(int j=0;j<p1->Count;j++)
{
p2=p1->Items[j];
if(p2->Name=="suLogIn" || p2->Name=="suSetup" || p2->Name=="suConn")
p2->Enabled=false;
else
p2->Enabled=true;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::suLogOutClick(TObject *Sender)
{
FClientComm->LogOut();
SetSystemStatus(0);
CloseChildren();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::CloseChildren()
{
for(int i = MDIChildCount-1; i >= 0; i--)
MDIChildren[i]->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
FClientComm->LogOut();
FClientComm->Terminate();
while(FClientComm->Suspended)
FClientComm->Resume();
if(FavorDataSet!=NULL)
delete FavorDataSet;
if(InitDataSet!=NULL)
delete InitDataSet;
Action = caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::suExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::LogInStatus(TMessage &message)
{
if(message.WParam==0)
{
SetSystemStatus(0);
if(bHaveMenu)
{
delete l_Menu;
bHaveMenu=false;
}
}
else if(message.WParam==1)
{
SetSystemStatus(1);
if(!bHaveMenu)
InitMenu();
StatusBar->Panels->Items[0]->Text=FClientComm->UserInfo->FieldValues["companyname"];
StatusBar->Panels->Items[1]->Text="财务月份:"+FClientComm->UserInfo->FieldValues["FMonth"];
StatusBar->Panels->Items[2]->Text="登陆时间:"+FClientComm->UserInfo->FieldValues["CurDateTime"];
StatusBar->Panels->Items[3]->Text="操作员:"+FClientComm->UserInfo->FieldValues["UserCode"];
}
else if(message.WParam==2)
{
Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::FormsChanged(TMessage &message)
{
if(message.WParam==0&&bHaveMenu)
l_Menu->ManageFormsMenu(FClientComm->ClientForms);
}
//---------------------------------------------------------------------------
bool __fastcall TfrmMainForm::FindForm(AnsiString FormName)
{
for (int i = 0; i < Screen->CustomFormCount; i++)
{
if(FormName==Screen->CustomForms[i]->Name)
return true;
}
return false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::InitMenu()
{
bHaveMenu=false;
AnsiString modulecode,uppercode,modulecaption,formid;
int level,height;
int moduletype;
l_Menu=new TKSMenu(this);
FClientComm->Module->First();
while(!FClientComm->Module->Eof)
{
modulecode=FClientComm->Module->FieldValues["modulecode"];
uppercode=FClientComm->Module->FieldValues["moduleupper"];
modulecaption=FClientComm->Module->FieldValues["modulecaption"];
height=FClientComm->Module->FieldValues["moduleheight"];
level=FClientComm->Module->FieldValues["modulelevel"];
moduletype=FClientComm->Module->FieldValues["moduletype"];
l_Menu->AddMenu(modulecode,uppercode,modulecaption,formid,level,moduletype,height);
FClientComm->Module->Next();
}
AnsiString NavpicModule;
AnsiString NavpicCode;
AnsiString NavpicFormName;
int NavpicLeft;
int NavpicTop;
int NavpicHeight;
int NavpicWidth;
try{
FClientComm->NavPic->First();
while(!FClientComm->NavPic->Eof)
{
NavpicModule=FClientComm->NavPic->FieldValues["modulecode"];
NavpicCode=FClientComm->NavPic->FieldValues["piccode"];
NavpicFormName="";
NavpicTop=FClientComm->NavPic->FieldValues["pictop"];
NavpicLeft=FClientComm->NavPic->FieldValues["picleft"];
NavpicHeight=FClientComm->NavPic->FieldValues["picheight"];
NavpicWidth=FClientComm->NavPic->FieldValues["picwidth"];
l_Menu->AddNavpic(NavpicModule,NavpicCode,NavpicFormName,NavpicTop,NavpicLeft,NavpicHeight,NavpicWidth);
FClientComm->NavPic->Next();
}
}
catch(...)
{
throw Exception(AnsiString(FClientComm->Module->RecNo));
}
AnsiString NavArrowModule;
AnsiString NavArrowCode;
int NavArrowStyle;
int NavArrowDir;
int NavArrow3D;
int NavArrowX1;
int NavArrowY1;
int NavArrowX2;
int NavArrowY2;
AnsiString NavArrowColor;
FClientComm->LogicLine->First();
while(!FClientComm->LogicLine->Eof)
{
NavArrowModule=FClientComm->LogicLine->FieldValues["modulecode"];
NavArrowCode=FClientComm->LogicLine->FieldValues["arrowcode"];
NavArrowStyle=FClientComm->LogicLine->FieldValues["arrowstyle"];
NavArrowDir=FClientComm->LogicLine->FieldValues["arrowdir"];
NavArrow3D=FClientComm->LogicLine->FieldValues["arrow3d"];
NavArrowX1=FClientComm->LogicLine->FieldValues["arrowx1"];
NavArrowY1=FClientComm->LogicLine->FieldValues["arrowy1"];
NavArrowX2=FClientComm->LogicLine->FieldValues["arrowx2"];
NavArrowY2=FClientComm->LogicLine->FieldValues["arrowy2"];
NavArrowColor=FClientComm->LogicLine->FieldValues["arrowcolor"];
l_Menu->AddNavArrow(NavArrowModule,NavArrowCode,NavArrowStyle,NavArrowDir,
NavArrow3D,NavArrowX1,NavArrowY1,NavArrowX2,NavArrowY2,NavArrowColor);
FClientComm->LogicLine->Next();
}
bHaveMenu=true;
l_Menu->ShowPageMenu();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::suBookClick(TObject *Sender)
{
AnsiString FileName;
FileName=ExtractFilePath(Application->ExeName)+"\\ksERPhelp.chm";
ShellExecute(Handle,"open",FileName.c_str(),NULL,ExtractFileDir(Application->ExeName).c_str(),SW_SHOWMAXIMIZED);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
AnsiString FileName;
if(Key==VK_F1)
{
FileName=ExtractFilePath(Application->ExeName)+"\\ksERPhelp.chm";
ShellExecute(Handle,"open",FileName.c_str(),NULL,ExtractFileDir(Application->ExeName).c_str(),SW_SHOWMAXIMIZED);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::Image_TitleDblClick(TObject *Sender)
{
frmMainForm->Top = Screen->DesktopTop;
frmMainForm->Left = Screen->DesktopLeft;
frmMainForm->Width = Screen->DesktopWidth;
frmMainForm->Height = Screen->DesktopHeight-30;
ImgClose->Left = frmMainForm->Width - ImgClose->Width - 5 ;
ImgMin->Left = ImgClose->Left - ImgClose->Width - 3;
WinMovFlg=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::Image_TitleMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
opoint.x=X;
opoint.y=Y;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::Image_TitleMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if (WinMovFlg==0){
WinMovFlg=1;
return;
}
cpoint.x=X;
cpoint.y=Y;
if (Shift.Contains(ssLeft) ){
frmMainForm->ClientToScreen(cpoint);
MoveWindow(frmMainForm->Handle,
frmMainForm->Left+cpoint.x-opoint.x,
frmMainForm->Top+cpoint.y-opoint.y,
frmMainForm->Width,frmMainForm->Height,true);
}
try{
if (ImgMMovFlg){
ImgMin->Picture->LoadFromFile(".\\Pic\\btnMinNu.bmp");
ImgMMovFlg = !ImgMMovFlg;
}
if (ImgCMovFlg){
ImgClose->Picture->LoadFromFile(".\\Pic\\btnCloseNu.bmp");
ImgCMovFlg = !ImgCMovFlg;
}
}
catch(...){} // 异常勿略
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgMinClick(TObject *Sender)
{
PostMessage(frmMainForm->Handle,WM_SYSCOMMAND, SC_MINIMIZE,0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgCloseClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::FormResize(TObject *Sender)
{
frmMainForm->Top = Screen->DesktopTop;
frmMainForm->Left = Screen->DesktopLeft;
frmMainForm->Width = Screen->DesktopWidth;
frmMainForm->Height = Screen->DesktopHeight-30;
ImgClose->Left = frmMainForm->Width - ImgClose->Width - 5 ;
ImgMin->Left = ImgClose->Left - ImgClose->Width - 3;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgMinMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if (!ImgMMovFlg){
try{
ImgMin->Picture->LoadFromFile(".\\Pic\\btnMinMov.bmp");
}
catch(...){} // 异常勿略
ImgMMovFlg = !ImgMMovFlg;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgMinMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
try{
ImgMin->Picture->LoadFromFile(".\\Pic\\btnMinDown.bmp");
}
catch(...){} // 异常勿略
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgCloseMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if (!ImgCMovFlg){
try{
ImgClose->Picture->LoadFromFile(".\\Pic\\btnCloseMov.bmp");
}
catch(...){} // 异常勿略
ImgCMovFlg = !ImgCMovFlg;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ImgCloseMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
try{
ImgClose->Picture->LoadFromFile(".\\Pic\\btnCloseDown.bmp");
}
catch(...){} // 异常勿略
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::FormCreate(TObject *Sender)
{
try{
Image_BakGup->Picture->LoadFromFile(".\\Pic\\bakGup.jpg");
Image_Title->Picture->LoadFromFile(".\\Pic\\Title.jpg");
}
catch(...){} // 异常勿略
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::suSetupClick(TObject *Sender)
{
ShellExecute(NULL, "open", "ClientCfg.exe" , NULL,NULL , SW_SHOW);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?