Files
winapp/RBmasterMain.h
T
2026-06-12 22:37:02 +08:00

314 lines
12 KiB
C++

//---------------------------------------------------------------------------
#ifndef RBmasterMainH
#define RBmasterMainH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.ComCtrls.hpp>
#include <Vcl.Grids.hpp>
#include "CEF4DelphiVCLRTL.hpp"
#include "GlobalUnit.h"
#include <Vcl.Mask.hpp>
#include <Vcl.WinXCtrls.hpp>
#include "InfoFrameUnit.h"
#include <Vcl.TitleBarCtrls.hpp>
#include <Vcl.Imaging.jpeg.hpp>
#include <Vcl.Imaging.pngimage.hpp>
#include <Vcl.Menus.hpp>
#include "TableUnit.h"
#include <vector>
#include <set>
using namespace std;
//---------------------------------------------------------------------------
class TMainForm : public TForm
{
__published: // IDE-managed Components
TBitBtn *m_btnSetting;
TScrollBox *m_panWeb;
TComboBox *m_cbRoad;
TToggleSwitch *m_tsMode;
TComboBox *m_cbBetWays;
TLabel *m_lblBetWayEdit;
TPanel *m_panTopBar;
TLabel *m_lblBetChipEdit;
TComboBox *m_cbBetChips;
TBitBtn *m_btnChart;
TBitBtn *m_btnLogs;
TBitBtn *m_btnStart;
TBitBtn *m_btnTables;
TBitBtn *m_btnLogin;
TLabeledEdit *m_leChipMul;
TLabel *m_lblTips;
TBevel *Bevel1;
TBevel *Bevel2;
TBevel *Bevel3;
TBevel *Bevel4;
TBitBtn *m_btnManual;
TBitBtn *m_btnReset;
TImage *m_imgBack;
TLabel *m_lblAnnonce;
TPopupMenu *m_pmCopyAccount;
TMenuItem *m_miCopyAccount;
TInfoFrame *m_frmInfo;
TPopupMenu *m_pmLogin;
TMenuItem *m_miPA;
TMenuItem *m_miAB;
TMenuItem *m_miDB;
TPopupMenu *m_pmRight;
TMenuItem *m_miRun;
TMenuItem *m_miRunOnly;
TMenuItem *m_miStop;
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *m_miUnselect;
TMenuItem *m_miStopOthers;
TMenuItem *N3;
TMenuItem *m_miSpec;
TMenuItem *N4;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormResize(TObject *Sender);
void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
void __fastcall FormShow(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall OnStartClick(TObject *Sender);
void __fastcall WebMouseWheelDown(TObject *Sender, TShiftState Shift, TPoint &MousePos, bool &Handled);
void __fastcall WebMouseWheelUp(TObject *Sender, TShiftState Shift, TPoint &MousePos, bool &Handled);
void __fastcall OnRoadChange(TObject *Sender);
void __fastcall OnTablesClick(TObject *Sender);
void __fastcall OnModeClick(TObject *Sender);
void __fastcall OnPolicyEditClick(TObject *Sender);
void __fastcall OnPolicyChange(TObject *Sender);
void __fastcall OnLoginClick(TObject *Sender);
void __fastcall OnChipMulExit(TObject *Sender);
void __fastcall OnLogsClick(TObject *Sender);
void __fastcall OnChartClick(TObject *Sender);
void __fastcall OnSettingClick(TObject *Sender);
void __fastcall OnResetClick(TObject *Sender);
void __fastcall OnManualClick(TObject *Sender);
void __fastcall OnChipMulKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall OnAccountClick(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);
void __fastcall OnLoginMenuClick(TObject *Sender);
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall OnComboCloseUp(TObject *Sender);
void __fastcall WebMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall WebMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
void __fastcall WebMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall OnPMRightClick(TObject *Sender);
void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
private: // User declarations
HINSTANCE m_hPMDll;
int m_iWSVelo, m_iWS;
String m_loginValues[6];
String m_url;
String m_sActCode; //授权码
int m_tExpire; //授权有效期
UINT m_idDevice; //设备号
WORD m_version[4];
TThread *m_vlThread, //Velo线程
*m_jsThread, //JS处理线程
*m_urThread, //用户鉴权线程
*m_dpThread; //数据解析线程
TTimer *m_pDPTimer, //数据处理定时器
*m_pUtilTimer; //工具定时器,Tag区分用途
int m_tmChart, //图表定时计数
m_tmWebFocus, //网页激活定时计数
// m_tmWebTimeout, //网页无数据超时
m_tmCount, //秒计数器
m_tmLogon, //登录时间
m_tmDailyLogin, //每日登录时间
m_tmDailyReport, //每日上报时间
m_tmDeadPause, //爆缆暂停定时计数
m_tmBetPause; //止赢止损暂停定时计数
bool m_bWebLogon,
m_bClosing,
m_bManual;
int m_nTabCols, m_nTabGap;
int m_iWindowState,
m_nLeft, m_nTop, m_nWidth, m_nHeight;
TChromium *m_chrm;
TStringList* m_v8Values;
HANDLE m_hV8Sema;
HANDLE m_hV8ValueSema;
// bool m_bV8Waiting;
vector<TTableFrame*> m_aTables;
vector<TThread*> m_aABThreads; //自动下注线程组
int m_nTabShow, m_nTabRun;
bool m_bDragReady, //鼠标拖动进行选择操作
m_bDraging;
TTimer *m_pDragTimer; //拖动滚屏定时器
int m_iLastSel; //最后单独选中台桌
set<int> m_aSelTabs; //选中台桌集合
int __fastcall TryUpdate();
int __fastcall InitGlobalVars();
void __fastcall DPTimerProc(TObject* Sender);
void __fastcall UtilTimerProc(TObject* Sender);
bool __fastcall WebsiteVelocity();
void __fastcall InitBrowser();
void __fastcall FileUserWeb( bool bSave=false );
void __fastcall FileGame( bool bSave=false );
void __fastcall FileUserVars( bool bSave=false );
void __fastcall ClearABThread(int hThread=0);
void __fastcall ClearDPThread();
void __fastcall ClearJSThread();
void __fastcall ClearVLThread();
void __fastcall ClearURThread();
void __fastcall ClearUtilTimer();
void __fastcall OnWSConnectError();
void __fastcall ResetGame();
void __fastcall GameOn();
void __fastcall GameOff(int iReason=0); //用户停止或退出
void __fastcall ManualOn();
void __fastcall ManualOff();
void __fastcall StartJSThread(int iOp);
void __fastcall ResetTableGrid();
void __fastcall ClearGames();
Int8 __fastcall ShowSettingForm();
void __fastcall ChangeWebsite();
int __fastcall GetTimeCount();
void __fastcall RBReport();
void __fastcall LoadUrl();
void __fastcall RecalcMultiRate();
void __fastcall SetTableFocus();
int __fastcall GetTableByPos(int x, int y);
void __fastcall SelectTables(int x1, int y1, int x2, int y2);
void __fastcall ClearSelect();
void __fastcall SetScrollTimer(int y);
void __fastcall ScrollTimerProc(TObject* Sender);
void __fastcall ReleaseV8ValueSema();
void __fastcall GetDeviceId();
void __fastcall Logout();
void __fastcall SetExpireJS();
bool __fastcall StopWebLoad();
void __fastcall WebAfterCreated(TObject *Sender, const _di_ICefBrowser browser);
void __fastcall WebBeforeClose(TObject* Sender, const _di_ICefBrowser browse);
void __fastcall WebBeforeContextMenu(TObject* Sender, const _di_ICefBrowser browser,
const _di_ICefFrame frame, const _di_ICefContextMenuParams params,
const _di_ICefMenuModel model);
void __fastcall WebBeforePopup(TObject* Sender, const _di_ICefBrowser browser, const _di_ICefFrame frame,
int popup_id, const ustring targetUrl, const ustring targetFrameName,
TCefWindowOpenDisposition targetDisposition, bool userGesture, const TCefPopupFeatures &popupFeatures,
TCefWindowInfo &windowInfo, _di_ICefClient &client, TCefBrowserSettings &settings,
_di_ICefDictionaryValue &extra_info, bool &noJavascriptAccess, bool &Result);
void __fastcall WebLoadEnd(TObject* Sender, const _di_ICefBrowser browser,
const _di_ICefFrame frame, int httpStatusCode);
void __fastcall WebProcessMessageReceived(TObject* Sender, const _di_ICefBrowser browser,
const _di_ICefFrame frame, TCefProcessId sourceProcess, const _di_ICefProcessMessage message,
/* out */ bool &Result);
void __fastcall WebResourceLoadComplete(TObject* Sender, const _di_ICefBrowser browser,
const _di_ICefFrame frame, const _di_ICefRequest request, const _di_ICefResponse response,
TCefUrlRequestStatus status, __int64 receivedContentLength);
// void __fastcall WebAddressChange(TObject* Sender, const _di_ICefBrowser browser,
// const _di_ICefFrame frame, const ustring url);
void __fastcall WebJsdialog(TObject* Sender, const _di_ICefBrowser browser, const ustring originUrl,
TCefJsDialogType dialogType, const ustring messageText, const ustring defaultPromptText,
_di_ICefJsDialogCallback callback, /* out */ bool &suppressMessage, /* out */ bool &Result);
void __fastcall WebLoadError(TObject* Sender, const _di_ICefBrowser browser, const _di_ICefFrame frame,
TCefErrorCode errorCode, const ustring errorText, const ustring failedUrl);
// void __fastcall WebPaint(TObject* Sender, const _di_ICefBrowser browser, TCefPaintElementType type_,
// NativeUInt dirtyRectsCount, const PCefRectArray dirtyRects, const void * buffer,
// int width, int height);
// void __fastcall WebGetViewRect(TObject* Sender, const _di_ICefBrowser browser, TCefRect &rect);
void __fastcall WebBeforeResourceLoad(TObject* Sender, const _di_ICefBrowser browser, const _di_ICefFrame frame,
const _di_ICefRequest request, const _di_ICefCallback callback, /* out */ TCefReturnValue &Result);
//消息处理
MESSAGE void __fastcall FormMove(TWMMove &msg);
MESSAGE void __fastcall SystemMenuCommand(TWMMenuSelect &Msg);
MESSAGE void __fastcall UMAutoBetEnd(TMessage &msg);
MESSAGE void __fastcall UMRestoreWindow(TMessage &msg);
MESSAGE void __fastcall UMVelocity(TMessage &msg);
MESSAGE void __fastcall UMJsHandled(TMessage &msg);
MESSAGE void __fastcall UMCheckCEF(TMessage &msg);
MESSAGE void __fastcall UMSetBet(TMessage &msg);
MESSAGE void __fastcall UMAddTable(TMessage &msg);
MESSAGE void __fastcall UMStatus(TMessage &msg);
MESSAGE void __fastcall UMWebLogin(TMessage &msg);
MESSAGE void __fastcall UMHttpReturn(TMessage &msg);
MESSAGE void __fastcall UMUserConfirm(TMessage &msg);
MESSAGE void __fastcall UMWebDead(TMessage &msg);
MESSAGE void __fastcall UMPolicyChanged(TMessage &msg);
MESSAGE void __fastcall UMLogUpdate(TMessage &msg);
MESSAGE void __fastcall UMStateUpdate(TMessage &msg);
MESSAGE void __fastcall UMChartUpdate(TMessage &msg);
MESSAGE void __fastcall UMEnterTable(TMessage &msg);
MESSAGE void __fastcall UMFloatBet(TMessage &msg);
MESSAGE void __fastcall UMFloatDead(TMessage &msg);
MESSAGE void __fastcall UMGlobalBet(TMessage &msg);
MESSAGE void __fastcall UMGlobalDead(TMessage &msg);
MESSAGE void __fastcall UMShowActCode(TMessage &msg);
MESSAGE void __fastcall UMOpenManual(TMessage &msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MOVE, TWMMove, FormMove)
MESSAGE_HANDLER(WM_SYSCOMMAND,TWMMenuSelect,SystemMenuCommand)
MESSAGE_HANDLER(UM_AUTOBETEND, TMessage, UMAutoBetEnd)
MESSAGE_HANDLER(UM_RESTORE, TMessage, UMRestoreWindow)
MESSAGE_HANDLER(UM_VELOCITY, TMessage, UMVelocity)
MESSAGE_HANDLER(UM_JSHANDLED, TMessage, UMJsHandled)
MESSAGE_HANDLER(UM_CHECKCEF, TMessage, UMCheckCEF)
MESSAGE_HANDLER(UM_SETBET, TMessage, UMSetBet)
MESSAGE_HANDLER(UM_ADDTABLE, TMessage, UMAddTable)
MESSAGE_HANDLER(UM_STATUS, TMessage, UMStatus)
MESSAGE_HANDLER(UM_WEBLOGIN, TMessage, UMWebLogin)
MESSAGE_HANDLER(UM_USERCONFIRM, TMessage, UMUserConfirm)
MESSAGE_HANDLER(UM_HTTPRETURN, TMessage, UMHttpReturn)
MESSAGE_HANDLER(UM_WEBDEAD, TMessage, UMWebDead)
MESSAGE_HANDLER(UM_POLICYCHANGED, TMessage, UMPolicyChanged)
MESSAGE_HANDLER(UM_LOG_UPDATE, TMessage, UMLogUpdate)
MESSAGE_HANDLER(UM_STATE_UPDATE, TMessage, UMStateUpdate)
MESSAGE_HANDLER(UM_CHART_UPDATE, TMessage, UMChartUpdate)
MESSAGE_HANDLER(UM_ENTER_TABLE, TMessage, UMEnterTable)
MESSAGE_HANDLER(UM_FLOAT_BET, TMessage, UMFloatBet)
MESSAGE_HANDLER(UM_FLOAT_DEAD, TMessage, UMFloatDead)
MESSAGE_HANDLER(UM_GLOBAL_BET, TMessage, UMGlobalBet)
MESSAGE_HANDLER(UM_GLOBAL_DEAD, TMessage, UMGlobalDead)
MESSAGE_HANDLER(UM_SUBFORMSHOWN, TMessage, UMShowActCode)
MESSAGE_HANDLER(UM_OPENMAUAL, TMessage, UMOpenManual)
END_MESSAGE_MAP(TForm)
protected:
virtual void __fastcall CreateParams(TCreateParams &Params);
public: // User declarations
String m_strStatus;
__fastcall TMainForm(TComponent* Owner);
_di_ICefFrame __fastcall GetCefFrame( int type );
TStringList* __fastcall GetJQValue( String& str, _di_ICefFrame frame );
int __fastcall IsPolicyInUse(int type, int iPolicy);
// bool __fastcall IsGameOn(){return m_bGameOn && !m_tmBetPause;};
};
//---------------------------------------------------------------------------
extern PACKAGE TMainForm *MainForm;
//---------------------------------------------------------------------------
#endif