Files
AccompanyCube/PayMentFormUnit.cpp
2026-06-13 00:10:11 +08:00

155 lines
5.0 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PayMentFormUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "GeneralDialogPanel"
#pragma link "TextButton"
#pragma link "PNGButton"
#pragma resource "*.dfm"
TPayMentForm *PayMentForm;
#define PANEL_LEFT 20
#define PANEL_TOP 42
#define PANEL_BOTTOM 15
//---------------------------------------------------------------------------
#define LEN_BKG_EXTERNAL_ROUND (1)
#define LEN_BKG_EXTERNAL_FRMAE (1)
#define LEN_BKG_INTERNAL_LINE (23)
//---------------------------------------------------------------------------
__fastcall TPayMentForm::TPayMentForm(TComponent* Owner, int iOperation, int nIdCount,
UINT *aIdStyle, int *aStyleCost,
int nCost, int nBalance)
: TForm(Owner)
{
int nLbHeight = (m_pTextButtonOK->Top - 23 - PANEL_HEIGHT)/2;
char bufBalance[200];
sprintf( bufBalance, "当前账户现有 %d 唱作音符", nBalance );
m_pLabelBlance->Caption = bufBalance;
m_pPayMentPanel = new TPayMentPanel(this);
m_pPayMentPanel->Parent = this;
m_pPayMentPanel->Font->Size = m_pLabelBlance->Font->Size;
m_pPayMentPanel->Left = PANEL_LEFT;
m_pPayMentPanel->Top = 23 + nLbHeight;
m_pPayMentPanel->Width = Width - 2*PANEL_LEFT;
m_pPayMentPanel->Height = 120;
m_pPayMentPanel->SetContent(iOperation, nIdCount, aIdStyle,
aStyleCost, nCost, nBalance);
m_pLabelMessage = NULL;
m_lbVip = NULL;
char bufCost[200];
if( nBalance<nCost ){
m_pTextButtonOK->Visible = false;
sprintf( bufCost, "账户余额不足,请登录网站充值兑换");
m_pLabelMessage = new TUrlLabel(this);
m_pLabelMessage->Parent = this;
m_pLabelMessage->ColorNor = CLR_TEXT_LEAVE;
m_pLabelMessage->ColorEnt = CLR_TEXT_ENTER;
m_pLabelMessage->ColorLea = CLR_TEXT_LEAVE;
m_pLabelMessage->Caption = bufCost;
char strURLMsg[256];
f_CS_GetWebPageURL( URL_RECHARGE, strURLMsg );
String StrUrl = (String)strURLMsg;
StrUrl += L"&coin=" + IntToStr(nCost - nBalance);
m_pLabelMessage->StrUrl = StrUrl;
m_pLabelMessage->Font->Name = m_pLabelBlance->Font->Name;
m_pLabelMessage->Font->Size = m_pLabelBlance->Font->Size;// int(8 * 96.0 / g_yDpi + 0.5);
m_pLabelMessage->Font->Style = TFontStyles()<<fsUnderline;
}
if(0==g_infoUser.accountInfo.vipPeriod){
m_lbVip = new TUrlLabel(this);
m_lbVip->Parent = this;
m_lbVip->ColorNor = CLR_TEXT_LEAVE;
m_lbVip->ColorEnt = CLR_TEXT_ENTER;
m_lbVip->ColorLea = CLR_TEXT_LEAVE;
m_lbVip->Caption = L"成为VIP:免功能费,风格八折";
char strURL[256];
f_CS_GetWebPageURL( URL_VIPMEMBER, strURL );
m_lbVip->StrUrl = strURL;
m_lbVip->Font->Name = m_pLabelBlance->Font->Name;
m_lbVip->Font->Size = m_pLabelBlance->Font->Size;//int(8 * 96.0 / g_yDpi + 0.5);
m_lbVip->Font->Style = TFontStyles()<<fsUnderline;
}
SetTransparent( this );
}
//---------------------------------------------------------------------------
__fastcall TPayMentForm::~TPayMentForm()
{
if( m_pPayMentPanel ){
delete m_pPayMentPanel;
m_pPayMentPanel = NULL;
}
}
//---------------------------------------------------------------------------
void __fastcall TPayMentForm::WMNCHitTest(TWMNCHitTest &Msg)
{
TForm::Dispatch(&Msg);
if( Msg.Result==HTCLIENT &&
(Msg.YPos<Top+LEN_BKG_INTERNAL_LINE) &&
(Msg.XPos<(Left+ m_PNGButtonClose->Left) ) )
{
Msg.Result = HTCAPTION;
}
}
//---------------------------------------------------------------------------
void __fastcall TPayMentForm::FormShow(TObject *Sender)
{
//绘制圆角窗体
HRGN hRgn = CreateRoundRectRgn( 0, 0, Width+1, Height+1, 16, 16 );
SetWindowRgn( Handle, hRgn, false );
DeleteObject( hRgn );
int nLbHeight = (m_pTextButtonOK->Top - 23 - PANEL_HEIGHT)/2;
m_pLabelBlance->Left = (Width - m_pLabelBlance->Width)/2;
m_pLabelBlance->Top = 23 + (nLbHeight - m_pLabelBlance->Height)/2;
nLbHeight = Height - (m_pPayMentPanel->Top + m_pPayMentPanel->Height);
if( m_pLabelMessage ) {
m_pLabelMessage->Left = m_pPayMentPanel->Left;
if(m_lbVip) {
m_pLabelMessage->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height
+ (nLbHeight/2 - m_pLabelMessage->Height)/2 + 5;
}
else {
m_pLabelMessage->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height
+ (nLbHeight - m_pLabelMessage->Height)/2;
}
}
if( m_lbVip ) {
m_lbVip->Left = m_pPayMentPanel->Left;
if( m_pLabelMessage ) {
m_lbVip->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height + nLbHeight/2 +
(nLbHeight/2 - m_lbVip->Height)/2 - 5;
}
else {
m_lbVip->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height +
(nLbHeight - m_lbVip->Height)/2;
}
}
m_pTextButtonCancel->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height
+ (nLbHeight - m_pTextButtonCancel->Height)/2;
m_pTextButtonOK->Top = m_pPayMentPanel->Top + m_pPayMentPanel->Height
+ (nLbHeight - m_pTextButtonOK->Height)/2;
m_pPayMentPanel->SetSB();
m_pPayMentPanel->SetFocus();
}
//---------------------------------------------------------------------------