2
我想在firemonkey項目中按名稱調用方法。但到目前爲止沒有運氣。按名稱調用方法Delphi 10 Firemonkey
下面是我的代碼:
type
TExecute = procedure of object;
TUpdates= class(TDataModule)
procedure UpdateToVersion(Version: Integer);
private
procedure UpdateToVersion1;
procedure UpdateToVersion2;
procedure UpdateToVersion3;
procedure Call(Name: string);
public
end;
procedure TUpdates.Call(Name: String);
var
m:TMethod;
Exe:TExecute;
begin
m.Data := pointer(Self);
m.Code := Self.MethodAddress(Name);
Exe := TExecute(m);
Exe;
end;
procedure TUpdates.UpdateToVersion(Version: Integer);
begin
Call('UpdateToVersion'+version.ToString);
end;
procedure TUpdates.UpdateToVersion1;
begin
//code
end;
procedure TUpdates.UpdateToVersion2;
begin
//code
end;
procedure TUpdates.UpdateToVersion3;
begin
//code
end;
結果: 當我打電話例如UpdateToVersion(1)我得到一個訪問衝突和程序UpdateToVersion1不會被調用。
我從一個示例中,這代碼從下面的鏈接: http://www.swissdelphicenter.ch/torry/showcode.php?id=799