關於olevariant型別的疑問??? vcl元件開發及應用
我在remotedatamodule中建立了乙個這樣的過程(類似於策略模式中"上下文"類)
申明:
procedure strategytrans(var stgy: olevariant); safecall;
實現:
procedure tsvqueuerdm.strategytrans(var stgy: olevariant);
begin
cxqustgy := stgy.create();//將具體的策略類物件傳遞給抽象類物件;
end;
其中,cxqustgy為一基類抽象物件,而stgy是我希望獲得的基類的子類物件
但從另外乙個地方傳來的(var stgy: olevariant)引數是字串型別的(這個字串的內容是某個子類的型別名稱).請問要怎樣才能將stgy字串轉換為類的物件?????????
怎麼沒有人來幫個忙哦
需要一陣列對類進行維護,
arr: array of tclass;
然後類加入到陣列。
類似下面,或者生命陣列常量
setlength(arr, length(arr) + 1);
arr[high(arr)] := tclass1;
全部加入到陣列
procedure tsvqueuerdm.strategytrans(var stgy: olevariant);
begin
for i:=0 to high(arr) do
if arr[i].classnameis(stgy) then
begin
cxqustgy := arr[i].create;
break;
end;
end;
關於OleVariant型別的疑問
關於olevariant型別的疑問?vcl元件開發及應用 我在remotedatamodule中建立了乙個這樣的過程 類似於策略模式中 上下文 類 申明 procedure strategytrans var stgy olevariant safecall 實現 procedure tsvqueu...
關於型別轉換
關於型別轉換,這裡只列舉類之間的型別轉換 其難點有在基類和派生類之間的資料型別轉換 在物件導向程式設計中,派生類實際上是基類的例項,但加上了一些額外資訊.在基類上所有的函式和字段也都在派生類上定義了,所以派生類可以隱式轉換為基類,看下面的例子 equals eq1 new equalss 基類和派生...
關於變數型別
不管是強型別還是弱型別,變數都有兩個屬性 型別和值 不管是哪一種程式語言,其中使用的變數,都既有強型別,又有值 弱型別的變數型別則是不許申明的,由直譯器解釋,但是弱型別也是有型別這個概念,php gettype 強制轉換並沒有改變變數的型別 改變的是變數的型別的值得型別,變數的型別是不允許改變的 靜...