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

Variant 及 TObject 在function上的定義

缺席
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-07 02:12:26 IP:61.71.xxx.xxx 未訂閱
請問各位! 我有一支 function (var1, var2, var3, var4, var5: variant): boolean; 其中有一個我想傳一個 combobox 內所有的items內容到 function var5中 但有一個問題, 如果我這樣寫 function(a1, a2, a3, a4, combobox) 或 function(a1, a2, a3, a4, combobox.items) 都會出現 Incompatible Type Variant and TCombobox 請問有沒有方法可以把 combobox 的items值全部傳入function中? 除了使用 VarArrayof([]) 的方式之外!
hahalin
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-07 04:02:57 IP:218.170.xxx.xxx 未訂閱
function (var1, var2, var3, var4:variant,var5 :tstrings): boolean;
hagar
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-07 08:49:53 IP:202.39.xxx.xxx 未訂閱
試試 function(a1, a2, a3, a4, ComboBox.Items.Text);
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-07 11:18:31 IP:203.67.xxx.xxx 未訂閱
還有.. function(a1, a2, a3, a4, Integer(ComboBox.Items)) function... begin TStrings(Integer(Item)).xxx end; ABCD分開看的懂,連起來像鬼劃符~~!!!
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-08 22:00:55 IP:220.137.xxx.xxx 未訂閱
另一個類似 items.Text 的 items.DelimitedText 搭配 items.Delimiter 不過.. 不知用variant傳items是什麼樣的考量..
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-09 15:40:44 IP:61.71.xxx.xxx 未訂閱
綜合以上三位提供的資料    hagar兄 function(a1, a2, a3, a4, ComboBox.Items.Text);  編譯可通過, 但在function接收時, 我要如何取得 combobox.item[i]的值 因為我在接收的function上也必須這樣的定義 function(var1, var2, var3, var4, var5: variant): boolean; begin .... end;    其中 var5 如果我這樣寫 var5.items[1].text, 編譯上是可以過, 但執行時會出現 Variant does not reference an automation object 的錯誤    jest0024    function(a1, a2, a3, a4, Integer(ComboBox.Items)) 這樣的傳入寫法, 編譯也可以通過 但在接收上 TStrings(Integer(Item)).xxx 這段我就看不懂了, 雖然 TCombobox 的 return value 是 TString 但如果我要取出傳入的 TCombobox.Items[1] 值 不知上面的表示法應如何才是完整正確的寫法 TStrings(Integer(此處是要放何object)).xxx 我總試不出 xxx 可以出現那一組 properity或 method來 peipei36 items.DelimitedText 搭配 items.Delimiter 我找不到 TCombobox.Items.DelimitedText的 properity及method 我使用的是Delphi5 以上謝謝三位, 但問題還沒法解決!
hagar
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-09 16:17:08 IP:202.39.xxx.xxx 未訂閱
引言: hagar兄 function(a1, a2, a3, a4, ComboBox.Items.Text); 編譯可通過, 但在function接收時, 我要如何取得 combobox.item[i]的值 因為我在接收的function上也必須這樣的定義 function(var1, var2, var3, var4, var5: variant): boolean; begin .... end; 其中 var5 如果我這樣寫 var5.items[1].text, 編譯上是可以過, 但執行時會出現 Variant does not reference an automation object 的錯誤
function(var1, var2, var3, var4, var5: variant): boolean;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Text := VarToStr(var5);
    ShowMessage(sl.Strings[1]);
  finally
    sl.Free;
  end;
end;
發表人 - hagar 於 2004/06/09 16:19:46
william
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-09 16:38:52 IP:147.8.xxx.xxx 未訂閱
Any particular reason for using variant??? Can VarArrayCreate be used instead of VarArrayOf?
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-09 16:51:49 IP:61.30.xxx.xxx 未訂閱
你好: 也提出我的方法給你試試。 // > src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-09 20:17:07 IP:211.74.xxx.xxx 未訂閱
這應該是個轉型的問題!
如何將Variant轉為Pointer (TObject為Pointer型態)
或將Pointer轉為Variant
1.hahalin
  使用TString類型的Pointer
2.hagar
  使用String類型Pointer
3.我的方法,直接轉型
  Variant->Integer->Pointer
4.ha0009
  使用函數轉型!
諸如此類...
ABCD分開看的懂,連起來像鬼劃符~~!!!
系統時間:2024-05-18 13:28:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!