TTest<T>.ToString; //不能編譯哦!
begin
Result := f.ToString;
end;
看了半天沒有很好的解決方案
唯一的方式只有這樣TToString<T> = reference to function(const AValue: T): string;
procedure TForm2.Button1Click(Sender: TObject);
var
gen : TGenContainer<Integer>;
begin
gen := TGenContainer<Integer>.Create(
function(const AValue: Integer): string
begin
Result := IntToStr(AValue);
end);
end;
也就是說必需在傳入一個函式。
這樣有點麻煩就是
2011年12月12日 星期一
Delphi 泛型轉字串
最近在用泛型寫一些東西,痴心妄想需要以下功能
2011年3月23日 星期三
Delphi TNotifyEvent用參數的問題
本來以為用若名函數可以搞定:
//以下方法不能編譯過
Button1.OnClick := procedure( sender : tobject ) begin
//...code
end;
結果不能通過。
後來找了好久才發現另外一個妙招,Delphi舊版的也可以用
procedure Click(Self : TObject; Sender: TObject);
var lv : TLvItem;
begin
lv := TLvItem(Self);
//.....code..
end;
function _CreateMenuItem(lv : TLvItem):TMenuItem;
var Meth: TMethod;
begin
Meth.Data := lv;
Meth.Code := @Click;
Result.OnClick := TNotifyEvent(Meth);
end;
訂閱:
文章 (Atom)