//--------------------------------------------------------------------------- #include #pragma hdrstop #include "GlobalUnit.h" #include "TableSet.h" #include "GameUnit.h" #include "UtilityUnit.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" //--------------------------------------------------------------------------- __fastcall TTabSetForm::TTabSetForm(TComponent* Owner, int nGame, int nShow, int nRun) : TForm(Owner) { m_nGame = nGame; m_nShow = nShow < 0 || nShow>nGame ? nGame : nShow; m_nRun = nRun < 0 || nRun>m_nShow ? m_nShow : nRun; m_iRun = 0; m_bMouseOver = false; //根据game数量添加台桌显示选项 int n = (nGame - 30) / 15; if(0 == (nGame % 15)) n--; for(int i=0; iAddItem(str, NULL); } m_cbShow->AddItem("全选", NULL); if(nShow<0 || nShow>=nGame) m_iShow = m_cbShow->Items->Count - 1; else m_iShow = (m_nShow / 15) - 1; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::FormCreate(TObject *Sender) { m_cbShow->ItemIndex = m_iShow; OnShowChange(NULL); m_cbShow->Enabled = !g_bGameOn; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::OnShowChange(TObject *Sender) { TComboBox* pShow = (TComboBox*)Sender; if(pShow){ m_iShow = pShow->ItemIndex; if(m_iShow == m_cbShow->Items->Count-1) m_nShow = m_nGame; else m_nShow = (m_iShow+1) * 15; } for(int i=m_cbRun->Items->Count-1; i>2; i--) m_cbRun->Items->Delete(i); //根据显示数量添加台桌运行选项 int n = m_nShow / 15; if(0 == (m_nShow % 15)) n--; for(int i=0; iAddItem(str, NULL); } m_cbRun->AddItem("全选", NULL); if(m_nRun >= m_nShow){ m_nRun = m_nShow; m_cbRun->ItemIndex = m_iRun = m_cbRun->Items->Count - 1; } else if(m_nRun>=15){ m_cbRun->ItemIndex = m_iRun = m_nRun / 15 + 2; } else m_cbRun->ItemIndex = m_iRun = m_nRun / 5; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::OnRunChange(TObject *Sender) { m_iRun = m_cbRun->ItemIndex; if(m_iRun==m_cbRun->Items->Count - 1) m_nRun = m_nShow; else if(m_iRun>=3) m_nRun = (m_iRun-2) * 15; else m_nRun = m_iRun * 5; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::OnOkClick(TObject *Sender) { if(m_iShow==m_cbShow->Items->Count-1) m_nShow = -1; if(m_iRun==m_cbRun->Items->Count-1) m_nRun = -1; if(m_cbResetIPs->Checked){ for(int i=0; iResetIP(); g_aIPGames.ClearAll(); } ModalResult = mrOk; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::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; // DebugPrint("discaptured"); } else{ m_bMouseOver = false; MouseCapture = true; // DebugPrint("captured"); } } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(X < 0 || Y < 0 || X > Width || Y > Height) ModalResult = mrCancel; } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { ResetIdle(); if(!m_bMouseOver && X>10 && X10 && YCursorPos); if((cPos.X<=10 || cPos.Y<=10 || cPos.X>=Width-10 || cPos.Y>=Height-10)){ cPos = pCB->ClientToScreen(TPoint(pCB->Width-10, pCB->Height/2)); SetCursorPos(cPos.X, cPos.Y); m_bMouseOver = true; } } //--------------------------------------------------------------------------- void __fastcall TTabSetForm::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 TTabSetForm::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 TTabSetForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key==VK_ESCAPE) ModalResult = mrCancel; } //---------------------------------------------------------------------------