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

about case... of

尚未結案
RoxetteI
一般會員


發表:8
回覆:4
積分:2
註冊:2002-04-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-07 10:25:35 IP:203.66.xxx.xxx 未訂閱
var kind: string; begin case kind of 'abc': ...; 'def': ...; end; end; when compile, why kind can't be string.
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-07 10:32:29 IP:210.243.xxx.xxx 未訂閱
RoxetteI 你好: 因為delphi本來就沒提供字串型態的case呀... 你可以把'abc','cde'轉成列舉型態如果你硬要 用的話啦!!
supman
尊榮會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-07 12:38:58 IP:61.70.xxx.xxx 未訂閱
C裡面的Case才能用字串,Delphi硬要用就用列舉,但不好用,建議直接用 if (kind=xxx) then 這樣就好了,不過還是提供給你參考.    
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,TypInfo, StdCtrls;    type
  TMessage = (S1,S2,S3,S4);
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    function GetErrorMsg(AErrorCode: String): String;
var
 Msg : String;
begin
case TMessage(GetEnumValue(TypeInfo(TMessage),AErrorCode)) of
 S1:Msg:='1';
 S2:Msg:='2';
 S3:Msg:='3';
 S4:Msg:='4';
 else
  Msg := 'Not Defined';
 end;
 Result := Msg;
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
showMessage(GetErrorMsg('S1'));
end;    end.
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-07 17:30:25 IP:219.133.xxx.xxx 未訂閱
借花献佛,这里有关Case的文章,很精采: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18531
supman
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-07 18:04:51 IP:61.70.xxx.xxx 未訂閱
感謝xxiaowang提供這篇文章,之前常在寫xml常常用的這方式,卻沒想到可以應用到這裡,整理使用範例如下. procedure TForm1.Button1Click(Sender: TObject); var List:TStringList; begin List:=TStringList.Create(); List.Add('a'); List.Add('b'); List.Add('c'); case List.IndexOf('b') of 0:ShowMessage('Msg1'); 1:ShowMessage('Msg2'); 2:ShowMessage('Msg3'); else ShowMessage('Not Defined'); end; end;
tamsun
一般會員


發表:0
回覆:1
積分:0
註冊:2004-12-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-09 16:48:53 IP:218.109.xxx.xxx 未訂閱
supman的方法感觉上是最实用的。
系統時間:2024-04-27 3:22:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!