【问题标题】:'GetCalcFields' not found in base class Error在基类错误中找不到“GetCalcFields”
【发布时间】:2022-01-09 17:02:20
【问题描述】:
type
  TCDSWithRecalc = class(TClientDataset)
  public
    procedure GetCalcFields(Buffer: PChar); override;
  end;

procedure TCDSWithRecalc.GetCalcFields(Buffer :PChar);
begin
  inherited GetCalcFields(Buffer);
end;

E2137 Method 'GetCalcFields' not found in base class.

我不明白这个错误是什么。你能帮忙吗?

【问题讨论】:

    标签: class delphi tclientdataset


    【解决方案1】:

    您没有说您使用的是哪个 Delphi 版本,但在现代 (Unicode) 版本中,Buffer 参数的类型声明已从原始(D7 及之前)PChar 更改为 TRecBuf。因此,您需要更改 TCDSWithRecalc 的声明

    type
      TCDSWithRecalc = class(TCustomClientDataset)
      public
        procedure GetCalcFields(Buffer: TRecBuf); override;
      end;
    
    [...]
    
    procedure TCDSWithRecalc.GetCalcFields(Buffer : TRecBuf);
    begin
      inherited GetCalcFields(Buffer);
    end;
    

    在 Delphi 10.4.2 中,编译器报告您的声明版本的附加错误

    [dcc32 Error] cds1u.pas(41): E2250 There is no overloaded version of 'GetCalcFields' that can be called with these arguments
    

    这是真的。

    【讨论】:

    • 这解决了您的问题吗?
    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2011-11-27
    相关资源
    最近更新 更多