//--------------------------------------------------------------------------- #include #pragma hdrstop #include "SettingFormUnit.h" #include "GameUnit.h" #include "GlobalUnit.h" #include "UtilityUnit.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TSettingForm *SettingForm = NULL; //--------------------------------------------------------------------------- __fastcall TSettingForm::TSettingForm(TComponent* Owner) : TForm(Owner) { //开始挂机 m_cbWaitNew->Checked = g_settings.bWaitNew; m_cbInitClearTabLog->Checked = g_settings.bInitClearTabLog; m_cbInitBetChipByStart->Checked = g_settings.bInitBetChipByStart; m_cbInitTabProfitByStart->Checked = g_settings.bInitTabProfitByStart; m_cbInitCurProfitByStart->Checked = g_settings.bInitCurProfitByStart; //台桌新局 m_cbInitBetByGame->Checked = g_settings.bInitBetByGame; m_cbInitChipByGame->Checked = g_settings.bInitChipByGame; m_cbInitProfitByGame->Checked = g_settings.bInitProfitByGame; m_cbInitLogByGame->Checked = g_settings.bInitLogByGame; //模拟本金 m_aRelatedCB[0] = m_cbSimAcc; m_aRelatedCtrl[0].push_back(m_edSimAcc); m_aRelatedCtrl[0].push_back(m_cbNoBetLow); m_aRelatedCtrl[0].push_back(m_cbStopLow); m_aRelatedCtrl[0].push_back(m_cbSyncReal); m_cbSimAcc->Checked = g_settings.bSimAccOn; m_edSimAcc->Text = g_settings.fSimAcc; m_cbNoBetLow->Checked = g_settings.bNoBetLow; m_cbStopLow->Checked = g_settings.bStopLow; m_cbSyncReal->Checked = g_settings.bSyncReal; //总体止赢 m_aRelatedCB[1] = m_cbTotalStopWin; m_aRelatedCtrl[1].push_back(m_edTotalStopWin); m_aRelatedCtrl[1].push_back(m_edTotalWinPause); m_aRelatedCtrl[1].push_back(m_rbTotalWin0); m_aRelatedCtrl[1].push_back(m_rbTotalWin1); m_aRelatedCtrl[1].push_back(m_rbTotalWin2); m_aRelatedCtrl[1].push_back(m_lbTotalWin); m_cbTotalStopWin->Checked = g_settings.bTotalStopWin; m_edTotalStopWin->Text = g_settings.nTotalStopWin; m_edTotalWinPause->Text = g_settings.nTotalWinPause; m_aTotalWinRB[0] = m_rbTotalWin0; m_aTotalWinRB[1] = m_rbTotalWin1; m_aTotalWinRB[2] = m_rbTotalWin2; m_aTotalWinRB[g_settings.iTotalWinOp]->Checked = true; //总体止损 m_aRelatedCB[2] = m_cbTotalStopLos; m_aRelatedCtrl[2].push_back(m_edTotalStopLos); m_aRelatedCtrl[2].push_back(m_edTotalLosPause); m_aRelatedCtrl[2].push_back(m_rbTotalLos0); m_aRelatedCtrl[2].push_back(m_rbTotalLos1); m_aRelatedCtrl[2].push_back(m_rbTotalLos2); m_aRelatedCtrl[2].push_back(m_lbTotalLos); m_cbTotalStopLos->Checked = g_settings.bTotalStopLos; m_edTotalStopLos->Text = g_settings.nTotalStopLos; m_edTotalLosPause->Text = g_settings.nTotalLosPause; m_aTotalLosRB[0] = m_rbTotalLos0; m_aTotalLosRB[1] = m_rbTotalLos1; m_aTotalLosRB[2] = m_rbTotalLos2; m_aTotalLosRB[g_settings.iTotalLosOp]->Checked = true; //赢利回落 m_aRelatedCB[3] = m_cbU2DStop; m_aRelatedCtrl[3].push_back(m_cbU2DPause); m_aRelatedCtrl[3].push_back(m_cbU2DMinPeak); m_aRelatedCtrl[3].push_back(m_edU2DStop); m_aRelatedCtrl[3].push_back(m_edU2DPause); m_aRelatedCtrl[3].push_back(m_edU2DMinPeak); m_aRelatedCtrl[3].push_back(m_lbU2DStop); m_aRelatedCtrl[3].push_back(m_lbU2DPause); m_cbU2DStop->Checked = g_settings.bU2DStop; m_cbU2DMinPeak->Checked = g_settings.bU2DMinPeak; m_cbU2DPause->Checked = g_settings.bU2DPause; m_edU2DStop->Text = g_settings.nU2DStop; m_edU2DMinPeak->Text = g_settings.nU2DMinPeak; m_edU2DPause->Text = g_settings.nU2DPause; //账户止赢 m_aRelatedCB[4] = m_cbAccStopWin; m_aRelatedCtrl[4].push_back(m_edAccStopWin); m_aRelatedCtrl[4].push_back(m_lbAccStopWin); m_cbAccStopWin->Checked = g_settings.bAccStopWin; m_edAccStopWin->Text = g_settings.nAccStopWin; //账户止损 m_aRelatedCB[5] = m_cbAccStopLos; m_aRelatedCtrl[5].push_back(m_edAccStopLos); m_aRelatedCtrl[5].push_back(m_lbAccStopLos); m_cbAccStopLos->Checked = g_settings.bAccStopLos; m_edAccStopLos->Text = g_settings.nAccStopLos; //单桌止赢 m_aRelatedCB[6] = m_cbTableStopWin; m_aRelatedCtrl[6].push_back(m_edTableStopWin); m_aRelatedCtrl[6].push_back(m_edTableWinPause); m_aRelatedCtrl[6].push_back(m_rbTableWin0); m_aRelatedCtrl[6].push_back(m_rbTableWin1); m_aRelatedCtrl[6].push_back(m_rbTableWin2); m_aRelatedCtrl[6].push_back(m_lbTableWin); m_cbTableStopWin->Checked = g_settings.bTableStopWin; m_edTableStopWin->Text = g_settings.nTableStopWin; m_edTableWinPause->Text = g_settings.nTableWinPause; m_aTableWinRB[0] = m_rbTableWin0; m_aTableWinRB[1] = m_rbTableWin1; m_aTableWinRB[2] = m_rbTableWin2; m_aTableWinRB[g_settings.iTableWinOp]->Checked = true; //单桌止损 m_aRelatedCB[7] = m_cbTableStopLos; m_aRelatedCtrl[7].push_back(m_edTableStopLos); m_aRelatedCtrl[7].push_back(m_edTableLosPause); m_aRelatedCtrl[7].push_back(m_rbTableLos0); m_aRelatedCtrl[7].push_back(m_rbTableLos1); m_aRelatedCtrl[7].push_back(m_rbTableLos2); m_aRelatedCtrl[7].push_back(m_lbTableLos); m_cbTableStopLos->Checked = g_settings.bTableStopLos; m_edTableStopLos->Text = g_settings.nTableStopLos; m_edTableLosPause->Text = g_settings.nTableLosPause; m_aTableLosRB[0] = m_rbTableLos0; m_aTableLosRB[1] = m_rbTableLos1; m_aTableLosRB[2] = m_rbTableLos2; m_aTableLosRB[g_settings.iTableLosOp]->Checked = true; //模拟赢转实打 m_aRelatedCB[8] = m_cbS2RWin; m_aRelatedCtrl[8].push_back(m_edS2RWin); m_aRelatedCtrl[8].push_back(m_lbS2RWin); m_cbS2RWin->Checked = g_settings.bS2RWin; m_edS2RWin->Text = g_settings.nS2RWin; //模拟输转实打 m_aRelatedCB[9] = m_cbS2RLos; m_aRelatedCtrl[9].push_back(m_edS2RLos); m_aRelatedCtrl[9].push_back(m_lbS2RLos); m_cbS2RLos->Checked = g_settings.bS2RLos; m_edS2RLos->Text = g_settings.nS2RLos; //实打赢转模拟 m_aRelatedCB[10] = m_cbR2SWin; m_aRelatedCtrl[10].push_back(m_edR2SWin); m_aRelatedCtrl[10].push_back(m_lbR2SWin); m_cbR2SWin->Checked = g_settings.bR2SWin; m_edR2SWin->Text = g_settings.nR2SWin; //实打输转模拟 m_aRelatedCB[11] = m_cbR2SLos; m_aRelatedCtrl[11].push_back(m_edR2SLos); m_aRelatedCtrl[11].push_back(m_lbR2SLos); m_cbR2SLos->Checked = g_settings.bR2SLos; m_edR2SLos->Text = g_settings.nR2SLos; //游台 m_cbFloat->Hint = "勾选开启游台模式:每次只有一个台桌下注\n" "开启游台时,至少勾选一种换台方式\n" "只勾选一种换台方式,表示仅当该条件成立时才换台\n" "若勾选了多种方式,则任意选中的条件成立时就换台"; m_aRelatedCB[12] = m_cbFloat; m_aRelatedCtrl[12].push_back(m_cbFloatEach); m_aRelatedCtrl[12].push_back(m_cbFloatShuffle); m_aRelatedCtrl[12].push_back(m_cbFloatLos); m_aRelatedCtrl[12].push_back(m_cbFloatWin); m_aRelatedCtrl[12].push_back(m_cbFloatTie); m_aFloatCB[0] = m_cbFloatEach; m_aFloatCB[1] = m_cbFloatShuffle; m_aFloatCB[2] = m_cbFloatLos; m_aFloatCB[3] = m_cbFloatWin; m_aFloatCB[4] = m_cbFloatTie; if(g_settings.iFloatMode){ for(int i=0; i<5; i++){ m_aFloatCB[i]->Enabled = true; m_aFloatCB[i]->OnClick = NULL; m_aFloatCB[i]->Checked = g_settings.iFloatMode & (1<OnClick = OnFloatOpClick; } m_cbFloat->OnClick = NULL; m_cbFloat->Checked = true; m_cbFloat->OnClick = OnRelatedCBClick; } //牌局选项 m_aRelatedCB[13] = m_cbHoldBet; m_aRelatedCtrl[13].push_back(m_edHoldBet); m_aRelatedCtrl[13].push_back(m_lbHoldBet); m_cbHoldBet->Checked = g_settings.bHoldBet; m_edHoldBet->Text = g_settings.nHoldBet; m_aRelatedCB[14] = m_cbHaltBet; m_aRelatedCtrl[14].push_back(m_edHaltBet); m_aRelatedCtrl[14].push_back(m_lbHaltBet); m_cbHaltBet->Checked = g_settings.bHaltBet; m_edHaltBet->Text = g_settings.nHaltBet; m_cbBetsNoTie->Checked = g_settings.bBetsNoTie; //页脚 m_cbStartShow->Checked = g_bShowSetting; if(g_bGameOn){ m_btnOk->Enabled = false; } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::OkClick(TObject *Sender) { g_settings.bWaitNew = m_cbWaitNew->Checked; g_settings.bInitClearTabLog = m_cbInitClearTabLog->Checked; g_settings.bInitBetChipByStart = m_cbInitBetChipByStart->Checked; g_settings.bInitTabProfitByStart = m_cbInitTabProfitByStart->Checked; g_settings.bInitCurProfitByStart = m_cbInitCurProfitByStart->Checked; g_settings.bInitBetByGame = m_cbInitBetByGame->Checked; g_settings.bInitChipByGame = m_cbInitChipByGame->Checked; g_settings.bInitProfitByGame = m_cbInitProfitByGame->Checked; g_settings.bInitLogByGame = m_cbInitLogByGame->Checked; double fSimAcc = m_edSimAcc->Text.ToDouble(); if(m_cbSimAcc->Checked!=g_settings.bSimAccOn || fSimAcc!=g_settings.fSimAcc){ if(m_cbSimAcc->Checked && fSimAcc!=g_settings.fSimAcc){ g_settings.fSimAcc = fSimAcc; PostMessage(Application->MainFormHandle, UM_CHART_UPDATE, 1, 1); //初始化图表 } g_settings.bSimAccOn = m_cbSimAcc->Checked; PostMessage(Application->MainFormHandle, UM_STATE_UPDATE, STATE_BALANCE, 1); if(g_bTesting && m_cbSimAcc->Checked){ g_fBalance = fSimAcc; PostMessage(Application->MainFormHandle, UM_CHART_UPDATE, 2, 1); //初始化图表 } } g_settings.bNoBetLow = m_cbNoBetLow->Checked; g_settings.bStopLow = m_cbStopLow->Checked; g_settings.bSyncReal = m_cbSyncReal->Checked; g_settings.bTotalStopWin = m_cbTotalStopWin->Checked; g_settings.bTotalStopLos = m_cbTotalStopLos->Checked; g_settings.nTotalStopWin = m_edTotalStopWin->Text.ToInt(); g_settings.nTotalStopLos = m_edTotalStopLos->Text.ToInt(); g_settings.nTotalWinPause = m_edTotalWinPause->Text.ToInt(); g_settings.nTotalLosPause = m_edTotalLosPause->Text.ToInt(); for(int i=0; i<3; i++){ if(m_aTotalWinRB[i]->Checked){ g_settings.iTotalWinOp = i; break; } } for(int i=0; i<3; i++){ if(m_aTotalLosRB[i]->Checked){ g_settings.iTotalLosOp = i; break; } } g_settings.bTableStopWin = m_cbTableStopWin->Checked; g_settings.bTableStopLos = m_cbTableStopLos->Checked; g_settings.nTableStopWin = m_edTableStopWin->Text.ToInt(); g_settings.nTableStopLos = m_edTableStopLos->Text.ToInt(); g_settings.nTableWinPause = m_edTableWinPause->Text.ToInt(); g_settings.nTableLosPause = m_edTableLosPause->Text.ToInt(); for(int i=0; i<3; i++){ if(m_aTableWinRB[i]->Checked){ g_settings.iTableWinOp = i; break; } } for(int i=0; i<3; i++){ if(m_aTableLosRB[i]->Checked){ g_settings.iTableLosOp = i; break; } } g_settings.bU2DStop = m_cbU2DStop->Checked; g_settings.bU2DPause = m_cbU2DPause->Checked; g_settings.bU2DMinPeak = m_cbU2DMinPeak->Checked; g_settings.nU2DStop = m_edU2DStop->Text.ToInt(); g_settings.nU2DPause = m_edU2DPause->Text.ToInt(); g_settings.nU2DMinPeak = m_edU2DMinPeak->Text.ToInt(); g_settings.bAccStopWin = m_cbAccStopWin->Checked; g_settings.bAccStopLos = m_cbAccStopLos->Checked; g_settings.nAccStopWin = m_edAccStopWin->Text.ToInt(); g_settings.nAccStopLos = m_edAccStopLos->Text.ToInt(); g_settings.bS2RWin = m_cbS2RWin->Checked; g_settings.bS2RLos = m_cbS2RLos->Checked; g_settings.bR2SWin = m_cbR2SWin->Checked; g_settings.bR2SLos = m_cbR2SLos->Checked; g_settings.nS2RWin = m_edS2RWin->Text.ToInt(); g_settings.nS2RLos = m_edS2RLos->Text.ToInt(); g_settings.nR2SWin = m_edR2SWin->Text.ToInt(); g_settings.nR2SLos = m_edR2SLos->Text.ToInt(); g_settings.bHoldBet = m_cbHoldBet->Checked; g_settings.bHaltBet = m_cbHaltBet->Checked; g_settings.nHoldBet = m_edHoldBet->Text.ToInt(); g_settings.nHaltBet = m_edHaltBet->Text.ToInt(); g_settings.iFloatMode = 0; if(m_cbFloat->Checked){ for(int i=0; i<5; i++){ if(m_aFloatCB[i]->Checked) g_settings.iFloatMode |= (1<Checked; g_bShowSetting = m_cbStartShow->Checked; ModalResult = mrOk; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::TotalPauseExit(TObject *Sender) { TEdit* pE = (TEdit*)Sender; int num = pE->Text.ToInt(); if(num<1 || num>30){ ShowMessage("请输入1-30的分钟数"); pE->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::PauseKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if( Key==13 ) m_btnOk->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TSettingForm::TablePauseExit(TObject *Sender) { TEdit* pE = (TEdit*)Sender; int num = pE->Text.ToInt(); if(num<0 || num>15){ ShowMessage("请输入0-15的分钟数"); pE->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::SimAccKeyPress(TObject *Sender, System::WideChar &Key) { if( Key>'9' || Key<'0' && Key!=0x8 && ( Key!='.' || ((TEdit*)Sender)->Text.Pos("."))) Key = 0; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::SimAccExit(TObject *Sender) { double fSimAcc; if(!TryStrToFloat(m_edSimAcc->Text, fSimAcc) || fSimAcc<20 || fSimAcc>1000000){ ShowMessage("请输入 20-1000000 的模拟本金"); m_edSimAcc->Text = "10000"; m_edSimAcc->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::OnRelatedCBClick(TObject *Sender) { TCheckBox* pCB = (TCheckBox*)Sender; int ind = pCB->Tag; vector& vc = m_aRelatedCtrl[ind]; for(int i=0; iEnabled = pCB->Checked; if(pCB==m_cbFloat){ //单独处理游台 if(pCB->Checked){ m_aFloatCB[0]->OnClick = NULL; m_aFloatCB[0]->Checked = true; m_aFloatCB[0]->OnClick = OnFloatOpClick; } else{ for(int i=0; i<5; i++){ m_aFloatCB[i]->OnClick = NULL; m_aFloatCB[i]->Checked = false; m_aFloatCB[i]->OnClick = OnFloatOpClick; } } } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::OnFloatOpClick(TObject *Sender) { TCheckBox* pCB = (TCheckBox*)Sender; if(!pCB->Checked){ bool bChk = false; for(int i=0; i<5; i++){ if(m_aFloatCB[i]->Checked){ bChk = true; break; } } if(!bChk){ pCB->OnClick = NULL; pCB->Checked = true; pCB->OnClick = OnFloatOpClick; ShowMessage("至少选择一种换台方式"); } } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::U2DPauseClick(TObject *Sender) { TCheckBox* pCB = (TCheckBox*)Sender; m_lbU2DStop->Visible = !pCB->Checked; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormShow(TObject *Sender) { TPoint cPos = ScreenToClient(Mouse->CursorPos); if(cPos.X>=0 && cPos.Y>=0 && cPos.X<=Width && cPos.Y<=Height){ m_bMouseOver = true; MouseCapture = false; } else{ m_bMouseOver = false; MouseCapture = true; } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key==VK_ESCAPE) ModalResult = mrCancel; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(X < 0 || Y < 0 || X > Width || Y > Height) ModalResult = mrCancel; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { ResetIdle(); if(!m_bMouseOver && X>10 && X10 && YCursorPos); // DebugPrint("mouse enter %d - %d", cPos.X, cPos.Y); if(cPos.X>=0 && cPos.Y>=0 && cPos.X<=Width && cPos.Y<=Height){ m_bMouseOver = true; if(MouseCapture){ MouseCapture = false; // DebugPrint("discaptured"); } } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormMouseLeave(TObject *Sender) { TPoint cPos = ScreenToClient(Mouse->CursorPos); // DebugPrint("mouse leave %d - %d of %d - %d", cPos.X, cPos.Y); if((cPos.X<=10 || cPos.Y<=10 || cPos.X>=Width-10 || cPos.Y>=Height-10)){ m_bMouseOver = false; if(!MouseCapture){ MouseCapture = true; // DebugPrint("captured"); } } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::WMKillFocus(TWMKillFocus &Message) { if(!m_bMouseOver) ModalResult = mrCancel; } //---------------------------------------------------------------------------