[英]How to make a generic/template function in Delphi
您好,我需要一些幫助來創建模板 function(如果我是正確的話,它們在 c++ 中是已知的)。 我正在使用 Delphi XE2,並且正在使用 MS Access 數據庫編寫數據庫應用程序。
問題是我寫的很多函數在不同的表上做同樣的事情。 所以我想我可以創建模板函數,然后為不同的表使用不同的參數。
例如, Locate
function 用於定位表或查詢中的特定記錄。 現在我想制作一個模板 function 但我不知道該怎么做。
我想把 function 放在我的數據模塊的公共部分,所以我在想這個
function find(tableName: TADOTable, fieldName: String, fieldValue: String):Boolean
然后...
function TDataModule.find(tableName: TADOTable, fieldName: String, fieldValue:String): Boolean;
var SearchOptions : TLocateOptions;
begin
SearchOptions := [loCaseInsensitive];
find := DataModule.tableName.Locate('fieldName', fieldValue, SearchOptions);
end;
但是這個不想編譯...
有什么方法可以制作某種模板 function ,我可以在其中將任何表作為參數傳遞,或者為每個表創建一個 class ,使用 getter 和 setter 函數會更好嗎?
function TDataModule2.LocateData(AADOTable: String; AKeyFields: String;
AKeyValues: Variant; Options: TLocateOptions): Boolean;
var
oComp: TComponent;
begin
Result := False;
oComp := FindComponent(AADOTable);
if (oComp is TADOTable) and (oComp as TADOTable).Active then
Result := (oComp as TADOTable).Locate(AKeyFields, AKeyValues, Options);
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.