MainFormY := g_Config.RunGate.MainFormY + 187
else
RunGate[I].nMainFormY := g_Config.RunGate.MainFormY; //187
end;
FillChar(SelGate, SizeOf(TProgram), #0);
SelGate.boGetStart := g_Config.SelGate.GetStart1;
SelGate.boReStart := True;
SelGate.sDirectory := g_sGameDirectory + 'SelGate\';
SelGate.sProgramFile := g_Config.SelGate.ProgramFile;
SelGate.nMainFormX := g_Config.SelGate.MainFormX;
SelGate.nMainFormY := g_Config.SelGate.MainFormY;
FillChar(SelGate1, SizeOf(TProgram), #0);
SelGate1.boGetStart := g_Config.SelGate.GetStart2;
SelGate1.boReStart := True;
SelGate1.sDirectory := g_sGameDirectory + 'SelGate\';
SelGate1.sProgramFile := g_Config.SelGate.ProgramFile;
SelGate1.nMainFormX := g_Config.SelGate.MainFormX;
SelGate1.nMainFormY := g_Config.SelGate.MainFormY;
FillChar(LoginGate, SizeOf(TProgram), #0);
LoginGate.boGetStart := g_Config.LoginGate.GetStart;
LoginGate.boReStart := True;
LoginGate.sDirectory := g_sGameDirectory + 'LoginGate\';
LoginGate.sProgramFile := g_Config.LoginGate.ProgramFile;
LoginGate.nMainFormX := g_Config.LoginGate.MainFormX;
LoginGate.nMainFormY := g_Config.LoginGate.MainFormY;
FillChar(LoginGate2, SizeOf(TProgram), #0);
LoginGate2.boGetStart := g_Config.LoginGate.GetStart and g_boIP2;
LoginGate2.boReStart := True;
LoginGate2.sDirectory := g_sGameDirectory + 'LoginGate\';
LoginGate2.sProgramFile := g_Config.LoginGate.ProgramFile;
LoginGate2.nMainFormX := g_Config.LoginGate.MainFormX;
LoginGate2.nMainFormY := g_Config.LoginGate.MainFormY;
FillChar(PlugTop, SizeOf(TProgram), #0);
PlugTop.boGetStart := g_Config.PlugTop.GetStart;
PlugTop.boReStart := True;
PlugTop.sDirectory := g_sGameDirectory + 'Mir200\';
PlugTop.sProgramFile := g_Config.PlugTop.ProgramFile;
PlugTop.nMainFormX := g_Config.PlugTop.MainFormX;
PlugTop.nMainFormY := g_Config.PlugTop.MainFormY;
CheckDBServer.Checked := DBServer.boGetStart;
CheckLoginSrv.Checked := LoginServer.boGetStart;
CheckM2Server.Checked := M2Server.boGetStart;
CheckLogServer.Checked := LogServer.boGetStart;
CheckPlugTop.Checked := PlugTop.boGetStart;
CheckLoginGate.Checked := LoginGate.boGetStart;
CheckSelGate1.Checked := SelGate.boGetStart;
CheckSelGate2.Checked := SelGate1.boGetStart;
CheckRunGate1.Checked := RunGate[0].boGetStart;
CheckRunGate2.Checked := RunGate[1].boGetStart;
CheckRunGate3.Checked := RunGate[2].boGetStart;
CheckRunGate4.Checked := RunGate[3].boGetStart;
CheckRunGate5.Checked := RunGate[4].boGetStart;
CheckRunGate6.Checked := RunGate[5].boGetStart;
CheckRunGate7.Checked := RunGate[6].boGetStart;
CheckRunGate8.Checked := RunGate[7].boGetStart;
ButtonStartGame.Caption := g_sButtonStopStartGame;
m_nStartStatus := 1;
TimerStartGame.Enabled := True;//调用启动计时器按顺序启动所有服务
end;
procedure TfrmMain.StopGame;
begin
ButtonStartGame.Caption := g_sButtonStopStopGame;
MainOutMessage('正在开始停止服务器...');
TimerCheckRun.Enabled := False; //停止服务监测
TimerStopGame.Enabled := True; //调用停止计时器按启动的相反顺序停止服务
m_boGateStop := False;
m_nStartStatus := 3;
end;
接下来的学习就涉及到了服务启动配置文件和启动设置问题,用到的win API较多,尤其是进程的通讯和消息处理,一个函数需要反复调试多遍我才能理解出一点东西,其中的穿插调用也很频繁,自己先将之前的复习一遍,为后边 |