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

用Timer每秒偵測數值,只偵測第一筆就不會動

答題得分者是:pceyes
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-31 05:13:19 IP:59.114.xxx.xxx 訂閱
我使用StringList來存放一些數字
裡面的數字基本上已經有排序過了
可是每次只要掃到了第一筆後
其他的就不會被再掃到
為什麼會這樣呢?
以下是數值:
15
27
35
39
42
45




我是使用每秒去偵測
以秒數去比對sringlist中的數值
只要秒數與以上數值一樣
就顯示在statusbar上
可是卻只在第一筆數值(15)顯示過後
接下來的幾筆都沒有顯示
請問為什麼會這樣呢?

for i := 0 to ss3.Count-1 do
if IntToStr(TotalTime) = ss3.Strings[i] then
StatusBar1.Panels[1].Text:=ss3.Strings[i];
else Exit;
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-31 06:03:22 IP:220.141.xxx.xxx 訂閱
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Myss := formatdatetime('ss',now);
if ss3.IndexOf(Myss)>0 then begin
StatusBar1.SimpleText := Myss;
end;
end;
------
努力會更接近成功
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-31 06:14:50 IP:59.114.xxx.xxx 訂閱
大大好像誤會我的用法了
我是想要每秒去偵測StringList裡的數值
只要秒數=ss3.Strings[i]就顯示在StatusBar上
(我程式碼中的TotalTime是我自己抓的秒數值)


===================引 用 pceyes 文 章===================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Myss := formatdatetime('ss',now);
if ss3.IndexOf(Myss)>0 then begin
StatusBar1.SimpleText := Myss;
end;
end;
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
編輯記錄
demon740405 重新編輯於 2008-10-31 06:16:13, 註解 無‧
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-10-31 06:29:53 IP:220.141.xxx.xxx 訂閱
那您要的是這個嗎?
[code delphi]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ss3.IndexOf(inttostr(TotalTime))>0 then begin // 如果現在總值在Strings中
StatusBar1.SimpleText := inttostr(TotalTime); // 顯示在StatusBar中
end;
end;

[/code]

===================引 用 demon740405 文 章===================
大大好像誤會我的用法了
我是想要每秒去偵測StringList裡的數值
只要秒數=ss3.Strings[i]就顯示在StatusBar上
(我程式碼中的TotalTime是我自己抓的秒數值)
請問您的TotalTime如何取得

===================引 用 pceyes 文 章===================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Myss := formatdatetime('ss',now); // 每秒偵測現在的秒數值
if ss3.IndexOf(Myss)>0 then begin // 如果現在秒值在Strings中
StatusBar1.SimpleText := Myss; // 顯示在StatusBar中
end;
end;
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-10-31 06:35:12, 註解 無‧
pceyes 重新編輯於 2008-10-31 06:52:44, 註解 無‧
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-31 07:40:47 IP:59.114.xxx.xxx 訂閱
我的意思是~
每秒的秒數去核對ss3裡的每個值
(每秒都用迴圈去查)
舉例來說---

ss3中有以下的數值:
15
27
35
39
42
45
(六個)
那麼在第15秒的時候的時候
就應該會在statusbar顯示15
第27秒的時候就應該顯示27
以此類推~

而我的totaltime是我自己抓的秒數
(它也會每秒跟著變動,基本上它就是秒了
並且是從0開始起跑的)
所以在totaltime=ss3.strings[i]的時候
就應該顯示該數值
(當Totaltim=15,ss3.Strings[i]也是15的時候)
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
編輯記錄
demon740405 重新編輯於 2008-10-31 07:42:16, 註解 無‧
demon740405 重新編輯於 2008-10-31 07:43:59, 註解 無‧
demon740405 重新編輯於 2008-10-31 07:45:58, 註解 無‧
demon740405 重新編輯於 2008-10-31 07:56:45, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-10-31 08:16:11 IP:59.126.xxx.xxx 訂閱
哦~~~兩個人這麼早起就開始 po 文,先跟兩位說聲早,其實 pceyes 大一直都這麼早起呵呵

其實 pceyes 大的答案應該可以符合您的需求



1、
在 if ss3.IndexOf(Myss) > 0 then begin
要小改一下 if ss3.IndexOf(Myss) >= 0 then begin

2、
檢查您的 TotalTime 是真的有抓到正確秒數嗎??
試著比對一下您抓到的時間和 pceyes 大抓的 myss 這個變數是不是一樣的值



===================引 用 demon740405 文 章===================
我的意思是~
每秒的秒數去核對ss3裡的每個值
(每秒都用迴圈去查)
舉例來說---

ss3中有以下的數值:
15
27
35
39
42
45
(六個)
那麼在第15秒的時候的時候
就應該會在statusbar顯示15
第27秒的時候就應該顯示27
以此類推~

而我的totaltime是我自己抓的秒數
(它也會每秒跟著變動,基本上它就是秒了
並且是從0開始起跑的)
所以在totaltime=ss3.strings[i]的時候
就應該顯示該數值
(當Totaltim=15,ss3.Strings[i]也是15的時候)
------
價值的展現,來自於你用哪一個角度來看待它!!
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-10-31 11:05:26 IP:59.114.xxx.xxx 訂閱
謝謝pceyes、careychen兩位大大的指教
尤其是pceyes大大
每天都是一大早就上ktop幫網友們解題
真的很感謝你們
目前已經測試ok了
沒有錯了
謝謝你們唷~~^^
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
系統時間:2024-05-07 22:42:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!