Files
AC_Pro/HelpPanelUnit.h
2026-06-13 00:05:19 +08:00

124 lines
2.7 KiB
C++

//---------------------------------------------------------------------------
#ifndef HelpPanelUnitH
#define HelpPanelUnitH
//---------------------------------------------------------------------------
#include <vcl.h>
#include <vector>
//------------------------
#include "SkinScrollBarUnit.h"
#include <Vcl.Imaging.pngimage.hpp>
#include "QRcodePanel.h"
#define MODE_NUM 6
#define SOFTWARE_NUM 3
#define COLOR_BORDER RGB(164,115,70)
#define COLOR_QUESTION RGB( 207,169,207 )
#define COLOR_ANSWER RGB( 249,246,229 )
#include <vector>
using namespace std;
typedef struct{
wstring str1;
wstring str2;
} TWSPAIR;
typedef vector< TWSPAIR* > TWSPAIRLIST;
typedef struct tagLineString{
int flag;
wstring strText;
tagLineString(){
flag = 0;
}
} TLineString;
typedef vector< TLineString* > TTEXTLINE;
//--------
class THelpPanel : public Extctrls::TPanel
{
private:
TQRcodePanel *m_pQRPanelAndroid, *m_pQRPaneliOS;
unsigned char *m_pQRdataAndroid, *m_pQRdataiOS;
TLabel *m_aLblSWName[SOFTWARE_NUM],
*m_aLblSWLink[SOFTWARE_NUM],
*m_lblCoinPage;
TTEXTLINE m_lstLines;
int m_iMode; //显示模式 0=常见问题,1=我要提问,2=网站公告,3=空间消息
int m_iLastMode; //上次显示模式
// char m_CharBuf[2048];
void CalcViewArea();
void ReadData();
void __fastcall LinkClick(TObject *Sender);
void __fastcall LinkMouseEnter(TObject *Sender);
void __fastcall LinkMouseLeave(TObject *Sender);
MESSAGE void __fastcall WMEraseBkgnd(Winapi::Messages::TWMEraseBkgnd &Message);
MESSAGE void __fastcall WMSize(Winapi::Messages::TWMSize &Message);
MESSAGE void __fastcall WMVScroll(Winapi::Messages::TWMScroll &Message);
MESSAGE void __fastcall WMMouseWheel(TWMMouseWheel &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize)
MESSAGE_HANDLER(WM_VSCROLL, TWMVScroll, WMVScroll)
MESSAGE_HANDLER(WM_MOUSEWHEEL, TWMMouseWheel, WMMouseWheel)
END_MESSAGE_MAP(Vcl::Extctrls::TPanel)
//protected:
//显示相关
int m_nRowShow,
m_nBeginShowRow,
m_nRowNum,
m_nPosFlag,
m_nPosText,
/* m_iFirstRowMode0,
m_iFirstRowMode1,
m_iFirstQAMode0,
m_iFirstQAMode1,
*/
m_aFirstRow[MODE_NUM],
m_aFirstTitle[MODE_NUM],
m_nRowWidth,
m_nRowHight,
m_nLeftBound,
m_nRightBound,
m_nTopBound,
m_nBottomBound;
TSkinScrollBar *m_sbVert;
// TMemo* m_memoMsg;
virtual void __fastcall CreateWnd();
virtual void __fastcall Paint(void);
void RefreshTextLines();
public:
void ScrollView( int nPos, bool bRedraw=true );
void SetMode( int iMode );
void AddFeedback( wstring str );
void SaveFirstRow();
void InitialVars();
bool HasScrollBar();
void SetTextFontSize(int sz);
__fastcall virtual THelpPanel(System::Classes::TComponent* AOwner);
__fastcall ~THelpPanel();
};
#endif