請問CSpinEdit元件能否使用浮點數?? |
尚未結案
|
Vincent2424
一般會員 發表:57 回覆:40 積分:19 註冊:2004-12-15 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 請問各位大大,CSpinEdit元件能否使用浮點數呢?? 剛爬了一下文,發現好像只有UpDown之Increment可以用小數,但我想用CSpinEdit之增、減量為小數...請問能否辦到呢...謝謝..Vincent2424你好: 簡單的做一做應該就可以用了: < class="code"> In .h ~~ class TForm1 : public TForm { __published: // IDE-managed Components TCSpinEdit *CSpinEdit1; void __fastcall FormCreate(TObject *Sender); private: // User declarations void __fastcall CSpinButton1UpClick(TObject *Sender); //add the line void __fastcall CSpinButton1DownClick(TObject *Sender); //add the line public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; ~~ In .cpp ~~ TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { CSpinEdit1->Text = "0"; CSpinEdit1->ReadOnly = true; TCSpinButton *CSpinButton1 = CSpinEdit1->Button; CSpinButton1->OnUpClick = CSpinButton1UpClick; CSpinButton1->OnDownClick = CSpinButton1DownClick; } //--------------------------------------------------------------------------- void __fastcall TForm1::CSpinButton1UpClick(TObject *Sender) { float Val; Val = StrToFloat(CSpinEdit1->Text); Val = 0.1; CSpinEdit1->Text = Format("%.1f", ARRAYOFCONST((Val))); } //--------------------------------------------------------------------------- void __fastcall TForm1::CSpinButton1DownClick(TObject *Sender) { float Val; Val = StrToFloat(CSpinEdit1->Text); Val -= 0.1; CSpinEdit1->Text = Format("%.1f", ARRAYOFCONST((Val))); } ~~ 參著! |
Vincent2424
一般會員 發表:57 回覆:40 積分:19 註冊:2004-12-15 發送簡訊給我 |
|
Vincent2424
一般會員 發表:57 回覆:40 積分:19 註冊:2004-12-15 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
|
Vincent2424
一般會員 發表:57 回覆:40 積分:19 註冊:2004-12-15 發送簡訊給我 |
版主大大您好以下是我的code //--------------------------------------------------------------------------- #include
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
Vincent2424你好: 檢查了一下,發現是 >~ < class="code">
In .h ~~
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TCSpinEdit *CSpinEdit1;
TEdit *Edit2;
TEdit *Edit3;
TEdit *Edit4;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
void __fastcall CSpinButton1UpClick(TObject *Sender); //add the line
void __fastcall CSpinButton1DownClick(TObject *Sender); //add the line TWndMethod OldCSpinEditWndProc;
void __fastcall CSpinEditWndProc(TMessage& Message);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
~~ In .cpp ~~
TForm1 *Form1; double A=0;
double B=0;
double C=0;
double D=0;
double E=0; AnsiString buf; //---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
OldCSpinEditWndProc = CSpinEdit1->WindowProc;
CSpinEdit1->WindowProc = CSpinEditWndProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
CSpinEdit1->Text = "8.5";
CSpinEdit1->ReadOnly = true; TCSpinButton *CSpinButton1 = CSpinEdit1->Button;
CSpinButton1->OnUpClick = CSpinButton1UpClick;
CSpinButton1->OnDownClick = CSpinButton1DownClick;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
A=StrToFloat(CSpinEdit1->Text);
B=StrToFloat(Edit2->Text);
C=StrToFloat(Edit3->Text); D=(0.562)*A 0.3917*B;
E=(4*D*pow(B,2))/(pow(C,3)); //定義輸出的Edit
Edit4->Text=E;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CSpinButton1UpClick(TObject *Sender)
{
float Val; Val = StrToFloat(CSpinEdit1->Text);
Val = 0.1;
CSpinEdit1->Text = Format("%.1f", ARRAYOFCONST((Val)));
}
//-------------------------------------------------------------------
void __fastcall TForm1::CSpinButton1DownClick(TObject *Sender)
{
float Val; Val = StrToFloat(CSpinEdit1->Text);
Val -= 0.1; CSpinEdit1->Text = Format("%.1f", ARRAYOFCONST((Val)));
}
//-------------------------------------------------------------------
void __fastcall TForm1::CSpinEditWndProc(TMessage& Message)
{
if (Message.Msg==WM_KILLFOCUS) {
buf=CSpinEdit1->Text;
CSpinEdit1->Text=0;
PostMessage(CSpinEdit1->Handle,WM_USER 1234,0,0);
} OldCSpinEditWndProc(Message); if (Message.Msg==WM_USER 1234)
CSpinEdit1->Text=buf;
}
~~ 程式已測試過可行,請參著!
|
Vincent2424
一般會員 發表:57 回覆:40 積分:19 註冊:2004-12-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |