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

variant record 使用多個 case

尚未結案
zombit
初階會員


發表:63
回覆:39
積分:30
註冊:2004-05-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-08 03:35:22 IP:61.62.xxx.xxx 未訂閱
Compile 不過, 只有一個 case 的話就ok,  請問怎麼處理, 謝謝.    
  TFruit = record
    name : string[20];
    Case isRound : Boolean of 
      True:
        (diameter : Single);  
      False:
        (length   : Single;   
         width    : Single);        Case isSomething : Boolean of 
      True:
        (a: integer);
      False:
        (c: char);
  end; 
 
yhchu
一般會員


發表:2
回覆:70
積分:24
註冊:2004-01-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-08 17:30:52 IP:220.130.xxx.xxx 未訂閱
好像 record 定義本來就只能有一個 variant part 吧?不知道可不可以做成兩個 record type?像是     TFruitShape = record Case isRound : Boolean of True: (diameter : Single); False: (length : Single; width : Single); end; TFruit = record name : string[20]; shape: TShape; Case isSomething : Boolean of True: (a: integer); False: (c: char); end; 我沒有試過,你可以試試看。要是不行,可以再把 TFruit 裡的 shape 改成 ^TShape 試試看。 另外,你想設計的 type 好像可以用物件導向的繼承方式做?
zombit
初階會員


發表:63
回覆:39
積分:30
註冊:2004-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-09 13:32:46 IP:61.62.xxx.xxx 未訂閱
HI yhchu, 我試出來了, 不過兩個 case 不能是平行的, 要在一個 case 裡面再放一個 case,  
      TProgramItem = record
    Name: string;
    FileLocation: string; // ??
    Owner: string;
    Tel: string;
    Enable: Boolean;        case SourceType: TSource of
      tsInternet: (
        IP: array[0..4] of string[128];
        EmergencyFileLocation: string[128];
        EmergencyEnable: Boolean;
        IntervalSec: Word;
        MaxToleranceSec: Word; // type Word = 0..65535;
        case PeriodType: TPeriodType of
          tpDay: ();
          tpWeek: (Weeks: TPeriodWeeks);
          tpSpecificDate: (DateList: TList);              );
      tsCallIn: (            );
  end;
 
不過想請問一下您說的 "你想設計的 type 好像可以用物件導向的繼承方式做?" 可以大概說明一下嗎? 謝謝.
系統時間:2024-04-26 6:07:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!