Vincent2424
一般會員

 發表:57 回覆:40 積分:19 註冊:2004-12-15
發送簡訊給我
|
請問各位大大,CSpinEdit元件能否使用浮點數呢?? 剛爬了一下文,發現好像只有UpDown之Increment可以用小數,但我想用CSpinEdit之增、減量為小數...請問能否辦到呢...謝謝..
|
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
發送簡訊給我
|
感謝m8815010大大的回答,我照你的方式做了可以執行
但是如下,
CSpinEdit1->Text = "8.5";
當我使用預設的值計算時沒問題
但是若按下
up→8.6
down→8.4 再計算時就有有問題耶...如圖...該如何解決??感激..
|
Vincent2424
一般會員

 發表:57 回覆:40 積分:19 註冊:2004-12-15
發送簡訊給我
|
還有我想直接在物件之value欄中,直接輸入8.5也會有問題,如圖

請問該如何解決呢...謝謝
|
m8815010
版主
   
 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
感謝m8815010大大的回答,我照你的方式做了可以執行
但是如下,
CSpinEdit1->Text = "8.5";
當我使用預設的值計算時沒問題
但是若按下
up→8.6
down→8.4 再計算時就有有問題耶...如圖...該如何解決??感激..
Vincent2424你好 : 不好意思,不太了解你的問題,是否可以更仔細的說明,或列出你的 >!
|
Vincent2424
一般會員

 發表:57 回覆:40 積分:19 註冊:2004-12-15
發送簡訊給我
|
|
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
發送簡訊給我
|
|