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

明明就型態相同,怎麼會說不同呢?

答題得分者是:hagar
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-03 05:36:36 IP:203.204.xxx.xxx 未訂閱
會出現 'incompatible types' 會錯誤訊息,然後,不能編譯和執行。 看了十幾遍,看不出來問題是什麼? var i, j: Integer; lb: TLabel; ed: TEdit; cb: TComboBox; maxbedno: integer; linespace: integer; begin maxbedno:=strtoint(edit2.Text); //設定最大床位數量; if (maxbedno<=1 or maxbedno >=12) then exit; //錯誤訊息是停留在這一行
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-03 07:23:29 IP:202.39.xxx.xxx 未訂閱
改成如下試試:
begin
   ...
   if (maxbedno <= 1) or (maxbedno >= 12) then exit;
end;
-- Everything I say is a lie.
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-03 07:35:51 IP:203.204.xxx.xxx 未訂閱
原來是這樣,可見和 VB 和 c 語言都不同。 再請問, maxbedno:=strtoint(edit2.Text); 這一行的話, 如果我們給它的是一個「不是數字」的字串,它會出現錯誤,怎麼辦呢? 也就是說我們要如何測出來它不是一個數字的字串,而不去執行這一行呢? 假設不用try.... finally
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-03 08:32:40 IP:202.39.xxx.xxx 未訂閱
不想用 try .. except 的話 那得先檢查 Edit1.Text 內每個字元是否為數字囉!    -- Everything I say is a lie.
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-03 14:22:40 IP:61.66.xxx.xxx 未訂閱
引言: 原來是這樣,可見和 VB 和 c 語言都不同。 再請問, maxbedno:=strtoint(edit2.Text); 這一行的話, 如果我們給它的是一個「不是數字」的字串,它會出現錯誤,怎麼辦呢? 也就是說我們要如何測出來它不是一個數字的字串,而不去執行這一行呢? 假設不用try.... finally
你可以用這樣的一個方法 maxbedno:= StrtoIntDef(edit2.Text,-9876); if maxbedno=-9876 then showmessage('worng number); 原因是 StrtoIntDef()函數轉換如果有問題的整數時, 會以第二組參數值為標準 只要你確定-9876是不可能被keyin的值, 就可以這樣做, 當然你可以自行挑一個隨便的整數值, 不過我還是建議你用 try .... except try maxbedno:= StrtoInt(edit2.Text); except showmessage('worng number'); end;
系統時間:2024-05-03 4:47:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!