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

如何動態決定變數的資料型態?

尚未結案
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-02 13:04:04 IP:61.219.xxx.xxx 未訂閱
各位大大: 請問在 delphi 裡如何動態決定變數的資料型態 如 if Fieldtype='Integer' VFieldtYPE:Integer; if Fieldtype='Boolean' VFieldtYPE:Boolean; 是否有辦法做到 Thomas Chiou
------
Thomas Chiou
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-02 13:26:35 IP:147.8.xxx.xxx 未訂閱
Field type in DB or generic type? For DB, look at TField.DataType.
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-02 13:37:47 IP:61.219.xxx.xxx 未訂閱
是 generic type Thomas Chiou
------
Thomas Chiou
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-02 13:45:37 IP:210.65.xxx.xxx 未訂閱
Hi:    不能 Variant 嗎程式執行時再去做 > -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-02 13:51:41 IP:61.219.xxx.xxx 未訂閱
用 Variant ? 程式執行時再去做 Convert? 抱歉,那程式該如何寫,聽不太懂你的意思
------
Thomas Chiou
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-02 13:57:51 IP:61.222.xxx.xxx 未訂閱
貼貼help的code參考看看    
    var
  V1, V2, V3, V4, V5: Variant;
  I: Integer;
  D: Double;
  S: string;
begin
  V1 := 1; { integer value }
  V2 := 1234.5678; { real value }
  V3 := 'Hello world!'; { string value }
  V4 := '1000'; { string value }
  V5 := V1   V2   V4; { real value 2235.5678}
  I := V1; { I = 1 (integer value) }
  D := V2; { D = 1234.5678 (real value) }
  S := V3; { S = 'Hello world!' (string value) }
  I := V4; { I = 1000 (integer value) }
  S := V5; { S = '2235.5678' (string value) }    end;    
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-02 14:20:23 IP:61.219.xxx.xxx 未訂閱
嗯! 不錯的用法,但這樣會不會有什麼後遺症? 謝謝 Thomas Chiou
------
Thomas Chiou
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-02 14:27:22 IP:61.222.xxx.xxx 未訂閱
這...可就快問倒我了 可能要看看help或是其他大大幫忙了    在漏漏長的help有看到一句    Variants that contain strings cannot be indexed. That is, if V is a variant that holds a string value, the construction V[1] causes a runtime error. 這應該也是後遺症之一吧!!!!
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-02 14:33:27 IP:61.222.xxx.xxx 未訂閱
跟著help慢慢複習,補充一下判斷variant是什麼型態可以用    VarIsNumeric:boolean VarIsFloat:boolean VarIsStr:boolean VarIsOrdinal:boolean    或是殘殘使用    VarIsType(const V: Variant; AVarType: TVarType): Boolean    其中TVarType的值可以是    [繼續轉貼 help]    
    Delphi syntax:    const
  varEmpty    = $0000;
  varNull     = $0001;
  varSmallint = $0002;
  varInteger  = $0003;
  varSingle   = $0004;
  varDouble   = $0005;
  varCurrency = $0006;
  varDate     = $0007;
  varOleStr   = $0008;
  varDispatch = $0009;
  varError    = $000A;
  varBoolean  = $000B;
  varVariant  = $000C;
  varUnknown  = $000D;
  varShortInt = $0010;
  varByte     = $0011;
  varWord     = $0012;
  varLongWord = $0013;
  varInt64    = $0014;
  varStrArg   = $0048;
  varString   = $0100;
  varAny      = $0101; 
  varTypeMask = $0FFF;
  varArray    = $2000;
  varByRef    = $4000;    C   syntax:    static const Shortint varEmpty = 0x0;
static const Shortint varNull = 0x1;
static const Shortint varSmallint = 0x2;
static const Shortint varInteger = 0x3;
static const Shortint varSingle = 0x4;
static const Shortint varDouble = 0x5;
static const Shortint varCurrency = 0x6;
static const Shortint varDate = 0x7;
static const Shortint varOleStr = 0x8;
static const Shortint varDispatch = 0x9;    static const Shortint varError = 0xa;
static const Shortint varBoolean = 0xb;
static const Shortint varVariant = 0xc;
static const Shortint varUnknown = 0xd;
static const Shortint varByte = 0x11;
static const Shortint varStrArg = 0x48;
static const Word varString = 0x100;
static const Word varAny = 0x101;
static const Word varTypeMask = 0xfff;
static const Word varArray = 0x2000;
static const Word varByRef = 0x4000;    
發表人 - hahalin 於 2004/02/02 14:36:01
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-03 11:25:07 IP:61.219.xxx.xxx 未訂閱
以前不知在那一本書裡有看到 用 varivant 是為了支援 old automation 而產生的 所以會很耗資源的,不用却也好用,尤其在做一些底層的資料庫介面設計時 謝謝 hahalin Thomas Chiou
------
Thomas Chiou
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-03 11:42:21 IP:61.222.xxx.xxx 未訂閱
不敢當不敢當 幫忙找找help而已 能幫得上忙才是真的
系統時間:2024-05-08 9:57:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!