在DataModule上使用函数

时间:2013-01-20 11:54:19

标签: delphi delphi-xe2

我有一个数据模块(TfDB)我想将此功能添加到它

 Function GetZone(zone :string):string;

当我尝试运行它时,我收到此错误... 不满意的外部声明:TfDB.GetZone

unit MyDataModule;

interface

uses
  System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB;

type
  TfDB = class(TDataModule)
    dbconnection: TADOConnection;
  private
    { Private declarations }
  public
          Function GetZone(zone :string):string;
  end;

var
  fDB: TfDB;

implementation

{%CLASSGROUP 'System.Classes.TPersistent'}

{$R *.dfm}

  Function GetZone(zone:string):string;
  begin
  if zone = 'FLayout1' then
        result := '1';
  if zone = 'FLayout2' then
      result := '2';
  if zone = 'FLayout3' then
      result := '3';
  if zone = 'FLayout4' then
      result := '4' ;
  if zone = 'FBoneYard' then
      result := 'BoneYard';
  if zone = 'FShop' then
      result := 'shop';
  if zone = 'FMisc' then
      result := 'Misc' ;
  end;

end.

1 个答案:

答案 0 :(得分:5)

在实现部分中,您需要将该函数声明为该类的方法:

function TfDB.GetZone(zone:string):string;
begin
  ....
end;

您的声明如下:

function GetZone(zone:string):string;
begin
  ....
end;

这定义了一个独立的函数而不是类的方法。