517 lines
17 KiB
C++
517 lines
17 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#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<<i);
|
|
m_aFloatCB[i]->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<<i);
|
|
|
|
}
|
|
}
|
|
|
|
g_settings.bBetsNoTie = m_cbBetsNoTie->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<TControl*>& vc = m_aRelatedCtrl[ind];
|
|
for(int i=0; i<vc.size(); i++)
|
|
vc[i]->Enabled = 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 && X<Width-10 && Y>10 && Y<Height-10){
|
|
m_bMouseOver = true;
|
|
MouseCapture = false;
|
|
// DebugPrint("discaptured %d - %d", X, Y);
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TSettingForm::FormMouseEnter(TObject *Sender)
|
|
{
|
|
TPoint cPos = ScreenToClient(Mouse->CursorPos);
|
|
// 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;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|