全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:786
推到 Plurk!
推到 Facebook!

CSpinEdit1的數字問題

尚未結案
kimi
一般會員


發表:37
回覆:76
積分:22
註冊:2003-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-03 22:05:09 IP:61.227.xxx.xxx 未訂閱
我想要數字顯示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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-03 18:37:14 IP:202.168.xxx.xxx 未訂閱
首先呢 你將你的判斷程式寫在 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-04 20:28:04 IP:61.227.xxx.xxx 未訂閱
謝謝大大的指教,我會好好試一下的。
kimi
一般會員


發表:37
回覆:76
積分:22
註冊:2003-07-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-13 21:39:38 IP:61.227.xxx.xxx 未訂閱
請問mkbobo大大,是不是我的程式,再加上你所打的程式,這樣就行了
mkbobo
一般會員


發表:4
回覆:68
積分:19
註冊:2003-04-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-14 10:35:46 IP:202.168.xxx.xxx 未訂閱
引言:請問mkbobo,是不是我的程式,再加上你所打的程式,這樣就行了
如果你想要做的恢復上一個正確的數值 哪你應該不行 在 OnChange 裡做任何改變(意思就是不能加任何程式碼) 就是我給你的範例 你必須要在某處先記住你的數值 我是利用 FormShow 這裡你可以根據你的需要做改變 然後再利用例如說 一個 button 的事件(就是說一個事件) 去檢查使用者是不是將數值正確輸入 如果是正確 便將 資料回存 如果不是 便回覆上一個正確的資料 我覺得我好像在繞口令喔 希望你看的懂
系統時間:2024-05-19 14:29:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!