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

請教一個關於語法問題

答題得分者是:supman
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-10 02:20:08 IP:59.36.xxx.xxx 未訂閱
請教一個關於語法問題    請問下面的語法錯在哪裡,正確的寫法該如何?先謝謝啦!    ==================================================  case YCHM of 1:   IF SZY_GS.fieldbyname('DYJSFF').AsInteger=1 THEN   DataSet.FieldByName('YC1').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger   + SZY_GS.fieldbyname('DYJS').AsInteger   ELSE   DataSet.FieldByName('YC1').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger   - SZY_GS.fieldbyname('DYJS').AsInteger);   ELSE   IF SZY_GS.fieldbyname('DEJSFF').AsInteger=1 THEN   DataSet.FieldByName('YC2').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger   + SZY_GS.fieldbyname('DEJS').AsInteger   ELSE   DataSet.FieldByName('YC2').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger   - SZY_GS.fieldbyname('DEJS').AsInteger);   ELSE   IF SZY_GS.fieldbyname('DSJSFF').AsInteger=1 THEN   DataSet.FieldByName('YC3').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger   + SZY_GS.fieldbyname('DSJS').AsInteger   ELSE   DataSet.FieldByName('YC3').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger   - SZY_GS.fieldbyname('DSJS').AsInteger);    寫程序——新問題會接踵而來!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-10 03:36:47 IP:203.204.xxx.xxx 未訂閱
您好: 怎不把錯誤訊息秀出來? case YCHM of 1: IF SZY_GS.fieldbyname('DYJSFF').AsInteger=1 THEN DataSet.FieldByName('YC1').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger + SZY_GS.fieldbyname('DYJS').AsInteger ELSE DataSet.FieldByName('YC1').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DYJS').AsInteger); ELSE IF SZY_GS.fieldbyname('DEJSFF').AsInteger=1 THEN DataSet.FieldByName('YC2').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger SZY_GS.fieldbyname('DEJS').AsInteger ELSE DataSet.FieldByName('YC2').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DEJS').AsInteger); ELSE IF SZY_GS.fieldbyname('DSJSFF').AsInteger=1 THEN DataSet.FieldByName('YC3').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger SZY_GS.fieldbyname('DSJS').AsInteger ELSE DataSet.FieldByName('YC3').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DSJS').AsInteger); 紅色的部分拿掉. 發表人 - supman 於 2005/05/10 03:38:21
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-10 12:22:28 IP:59.36.xxx.xxx 未訂閱
寫程序——新問題會接踵而來!
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-10 12:44:38 IP:202.39.xxx.xxx 未訂閱
您好, 在 delphi 裡一個 if 只能有一個 else 但可以有很多個 else if 所以應該這麼寫:
if ... then
else if ... then
else if ... then
...
else // 最後一個才用 else
或者
if ... then
else
begin
  if ... then
  else
  begin
     if ... then
     else
  end;
end;
-- hagar.
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-10 12:46:22 IP:61.70.xxx.xxx 未訂閱
您好: 上傳圖片請改用jpg,不然要下載很久 您出現錯誤訊息的地方是因為上面的else少了if case YCHM of 1: IF SZY_GS.fieldbyname('DYJSFF').AsInteger=1 THEN DataSet.FieldByName('YC1').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger + SZY_GS.fieldbyname('DYJS').AsInteger ELSE if DataSet.FieldByName('YC1').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DYJS').AsInteger) ELSE IF SZY_GS.fieldbyname('DEJSFF').AsInteger=1 THEN DataSet.FieldByName('YC2').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger SZY_GS.fieldbyname('DEJS').AsInteger ELSE if DataSet.FieldByName('YC2').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DEJS').AsInteger) ELSE IF SZY_GS.fieldbyname('DSJSFF').AsInteger=1 THEN DataSet.FieldByName('YC3').AsInteger := SZY_KJYC.FieldByName('P1').AsInteger SZY_GS.fieldbyname('DSJS').AsInteger ELSE if DataSet.FieldByName('YC3').AsInteger := ABS(SZY_KJYC.FieldByName('P1').AsInteger - SZY_GS.fieldbyname('DSJS').AsInteger);
系統時間:2024-06-02 18:54:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!