線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1197
推到 Plurk!
推到 Facebook!

「CSpinEdit」元件的數字問題

答題得分者是:gemi0305
kimi
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-20 21:24:13 IP:61.227.xxx.xxx 未訂閱
請問要如何將數字從50->0->50這樣跑,是不是用bcb提供的元件就可呢??
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-20 21:30:39 IP:61.224.xxx.xxx 未訂閱
kimi你好, 不太懂你的意思,是說一次跳50嗎? 可以加上綠色這行程式碼:  
 
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
  CSpinEdit1->Increment=50; 
}
//--------------------------------------------------    
國泰平安
kimi
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-20 21:57:00 IP:61.227.xxx.xxx 未訂閱
是指從0,1,2一直到50,再從50->0,1,2這樣跑下去,可否直接用bcb提供的元件就可呢??
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-20 22:01:18 IP:140.135.xxx.xxx 未訂閱
kimi您好: 試試下面的code  
 
void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
   if (CSpinEdit1->Text==51)
   CSpinEdit1->Text=0;
} 
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-20 22:09:12 IP:61.224.xxx.xxx 未訂閱
參考以下的code,只要你按往上的箭頭, 就會從 0-> 50-> 0    
    void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
    if(CSpinEdit1->Text.ToInt()>=50)
      CSpinEdit1->Increment=-1;
}
//--------------------------------------------------------------  
這是種應用 加上篇
kimi
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-21 00:52:56 IP:61.227.xxx.xxx 未訂閱
if (CSpinEdit1->Text==51) CSpinEdit1->Text=0; 這一個方法只能從0,1...一直到50 而不能從0往下到50,49.48...
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-21 01:02:45 IP:61.221.xxx.xxx 未訂閱
引言: if (CSpinEdit1->Text==51) CSpinEdit1->Text=0; 這一個方法只能從0,1...一直到50 而不能從0往下到50,49.48...
kimi 你好:
應該只需要把 CSpinEdit1 的屬性設定好就可以了吧
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   CSpinEdit1->MaxValue=50;
   CSpinEdit1->MinValue=0;
   CSpinEdit1->Increment=1;
}
void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
   try
   {
      StrToInt(CSpinEdit1->Text);
   }
   catch(EConvertError&)
   {
      CSpinEdit1->Text=IntToStr(CSpinEdit1->MinValue);
   }
   if(CSpinEdit1->Text=="")
   {
      CSpinEdit1->Value=CSpinEdit1->MinValue;
   }
   if(CSpinEdit1->Value>CSpinEdit1->MaxValue)
   {
      CSpinEdit1->Value=CSpinEdit1->MaxValue;
   }
   if(CSpinEdit1->ValueMinValue)
   {
      CSpinEdit1->Value=CSpinEdit1->MinValue;
   }
}
-- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/07/21 01:24:46
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-21 01:16:47 IP:140.135.xxx.xxx 未訂閱
kimi您好:
引言:是指從0,1,2一直到50,再從50->0,1,2這樣跑下去
不好意思,我以為您是要按上鍵之後數字為0,1,2...~50,0,1,2..~50一直循環下去 ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/07/21 01:18:12
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-21 08:50:11 IP:210.66.xxx.xxx 未訂閱
呵~ 連包前輩都加入了, 大家都在猜...道底 "0,1...一直到50 從0往下到50,49.48..." 是什麼意思~ 是像包前輩寫的那樣: 把範圍限制為0~50之間,還是...??    我也猜錯好多次 是說,當按上的箭頭會從 class="code"> __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { CSpinEdit1->MaxValue=51; CSpinEdit1->MinValue=-51; CSpinEdit1->Increment=1; } //----------------------------------------------------------- void __fastcall TForm1::CSpinEdit1Change(TObject *Sender) { if (CSpinEdit1->Text.ToInt()==51) CSpinEdit1->Text=0; if(CSpinEdit1->Text.ToInt()<0) CSpinEdit1->Text=CSpinEdit1->Text.ToInt() 51; } //-------------------------------------------------------- 國泰平安
kimi
一般會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-07-21 09:00:22 IP:61.227.xxx.xxx 未訂閱
CSpinEdit1->MaxValue=50;    CSpinEdit1->MinValue=0;    CSpinEdit1->Increment=1; 這些設定我是用 "屬性標籤" 中的MaxValue,MinValue,Increment設定的,是否會影響結果 因為我用程式    try    {       StrToInt(CSpinEdit1->Text);    }    catch(EConvertError&)    {       CSpinEdit1->Text=IntToStr(CSpinEdit1->MinValue);    }    if(CSpinEdit1->Text=="")    {       CSpinEdit1->Value=CSpinEdit1->MinValue;    }    if(CSpinEdit1->Value>CSpinEdit1->MaxValue)    {       CSpinEdit1->Value=CSpinEdit1->MaxValue;    }    if(CSpinEdit1->ValueMinValue) { CSpinEdit1->Value=CSpinEdit1->MinValue; } 並沒有跑出我所要的結果,只能從0~50就停止了 發表人 - kimi 於 2003/07/21 09:01:35
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-07-21 09:21:09 IP:203.73.xxx.xxx 未訂閱
引言: CSpinEdit1->MaxValue=50; CSpinEdit1->MinValue=0; CSpinEdit1->Increment=1; 這些設定我是用 "屬性標籤" 中的MaxValue,MinValue,Increment設定的,是否會影響結果 因為我用程式 try { StrToInt(CSpinEdit1->Text); } catch(EConvertError&) { CSpinEdit1->Text=IntToStr(CSpinEdit1->MinValue); } if(CSpinEdit1->Text=="") { CSpinEdit1->Value=CSpinEdit1->MinValue; } if(CSpinEdit1->Value>CSpinEdit1->MaxValue) { CSpinEdit1->Value=CSpinEdit1->MaxValue; } if(CSpinEdit1->ValueMinValue) { CSpinEdit1->Value=CSpinEdit1->MinValue; } 並沒有跑出我所要的結果,只能從0~50就停止了
kimi 你好:
如果只是想單純的控制 CSpinEdit1 的顯示的話,只需要這樣做吧??
(>>>>>>=>>> >
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
deal
一般會員


發表:6
回覆:33
積分:22
註冊:2003-04-07

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-07-21 10:28:40 IP:163.29.xxx.xxx 未訂閱
不是很瞭解你的需求,試試下面的程式,在CSpinEdit的OnChange事件中加入
 
  if (CSpinEdit->Value == CSpinEdit->MaxValue)
    CSpinEdit->Increment = -1;
  if (CSpinEdit->Value == CSpinEdit->MinValue)
    CSpinEdit->Increment = 1;
kimi
一般會員


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-07-21 23:37:36 IP:61.227.xxx.xxx 未訂閱
我己經把問題解決了,謝謝大大們的回答
系統時間:2024-05-07 20:35:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!