CSpinEdit1的數字問題 |
尚未結案
|
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
我想要數字顯示0.1.2....99.0.1...99一直return的情況
另一個就是大於99的數字還會顯示先前的
ex:先輸入55之後輸入112還是顯示55這一個數字
請大大幫我看看我的程式那一方面要改進
void __fastcall TMain_Func::CSpinEdit1Change(TObject *Sender)
{
if(CSpinEdit1->Text!="")
{
if(CSpinEdit1->Text.ToInt()<0)
CSpinEdit1->Text="99";
else if(CSpinEdit1->Text.ToInt()>=0 &&CSpinEdit1->Text.ToInt()<5 ||
CSpinEdit1->Text.ToInt()>=10&&CSpinEdit1->Text.ToInt()<100)
keepNum=CSpinEdit1->Text.ToInt();
else if(CSpinEdit1->Text.ToInt()==100)
CSpinEdit1->Text="0";
else if(CSpinEdit1->Text.ToInt()>100)
CSpinEdit1->Text=IntToStr(keepNum);
} }
|
mkbobo
一般會員 發表:4 回覆:68 積分:19 註冊:2003-04-10 發送簡訊給我 |
首先呢 你將你的判斷程式寫在 OnChange 裡面
你的要求呢就是不可能達的到了
因為OnChange 是只要你有改變就會進入的event
所以當你在輸入55後便無法在輸入任何的字元了請問你怎麼回覆呢?? 我的建議是
在OnChange裡單純的判斷是否輸入 在0到99之間 不在的不允許改變
然後在 KeyPass 裡將不是數字的去除
這樣就好了 如果你想達成你要的 將回覆錯誤的資訊
哪有一個方法
第一 再進入時(意思是假設進入這個FORM時資料就有了 可以利用FormShow) 先將資料記住
第二 在Button 裡判斷 資料是否超過 超過將資料回覆成你要的 附上一個小範例
void __fastcall TForm1::CSpinEdit1KeyPress(TObject *Sender, char &Key) { if(Key < '0' || Key > '9') Key = NULL; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { CSpinEdit1->Text = "55"; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { keepNum = CSpinEdit1->Text.ToIntDef(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::BitBtn1Click(TObject *Sender) { if(CSpinEdit1->Text.ToIntDef(0)>99) CSpinEdit1->Text = IntToStr(keepNum); else keepNum = CSpinEdit1->Text.ToIntDef(0); } |
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
|
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
|
mkbobo
一般會員 發表:4 回覆:68 積分:19 註冊:2003-04-10 發送簡訊給我 |
引言:請問mkbobo,是不是我的程式,再加上你所打的程式,這樣就行了如果你想要做的恢復上一個正確的數值 哪你應該不行 在 OnChange 裡做任何改變(意思就是不能加任何程式碼) 就是我給你的範例 你必須要在某處先記住你的數值 我是利用 FormShow 這裡你可以根據你的需要做改變 然後再利用例如說 一個 button 的事件(就是說一個事件) 去檢查使用者是不是將數值正確輸入 如果是正確 便將 資料回存 如果不是 便回覆上一個正確的資料 我覺得我好像在繞口令喔 希望你看的懂 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |