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

enum

缺席
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-28 12:55:21 IP:61.220.xxx.xxx 未訂閱
我想在 statusbar 分兩個 panel, panels[0] 放 auto hint panels[1] 放 message 但是不想用 0, 1 這種沒有意義的索引, 若在 c 語言通常都用 enum { StatusHint,StatusMsg }; StatusBar1.Panels[StatusHint] 就會自動索引到 0 但 delphi 中,必須改成 type StatusIndexType=(StatusHint,StatusMsg); StatusBar1.Panels[Ord(StatusHint)] 就會自動索引到 0 請問各位有較方便的做法嗎?
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-28 13:22:41 IP:61.218.xxx.xxx 未訂閱
如果你用 Const 去定義的話 ,也許也是可以做到同樣的功能囉    
 
const
  A = 0 ;
  B = 1 ;
  C = 2 ;
procedure TForm1.Button1Click(Sender: TObject);
begin
  with TStringList.Create do
    try
      Add( 'This ' ) ;
      Add( 'is ' ) ;
      Add( 'a book.' ) ;
    finally
      ShowMessage( Strings[ A ]   Strings[ B ]   Strings[ C ] ) ;
      Free ;
    end ;
end;
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-28 18:14:07 IP:61.220.xxx.xxx 未訂閱
換種說法好了, 我就是覺得 const A=1 B=2 .. 這種寫法太麻煩,因為在 C 裡面 enum 會自動編號, 並相容於 integer type. 有人有更方便的做法嗎?
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-28 21:50:10 IP:203.217.xxx.xxx 未訂閱
可以以enum之型態做為array之index如下 type MyType=(typeA, typeB, TypeC); var aa:array[MyType] of string;//宣告array 以mytype為index begin aa[typeA]:='this is a string'; showmessage(aa[typeA]); end; 在stausbar之panels其index已宣告為integer故一定要用ord(...) 無法像C 一樣
系統時間:2024-04-20 16:14:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!