3

コードの何が問題になっていますか? 次のエラーが表示されます。

[dcc32 エラー] Unit6.pas(83): E2012 式の型は BOOLEAN でなければなりません

function checkver(): boolean;
begin
  //some code here
end;

function refresh(): boolean;
begin
  //some code here
end;

procedure TForm6.FormCreate(Sender: TObject);
begin
  if checkver() then
    if refresh() then  //Error is HERE!!
      //some code here
end;

(完全なコード)

4

1 に答える 1

18

TControl(フォームクラスの子孫)には独自Refreshメソッドがあり、ブール値を返しません。そのクラスのメソッドでコードを記述しているため、そのメソッドのスコープは、同じ名前のユニットレベルのメソッドのスコープよりも近く、コンパイラは関数Refreshではなくメソッドにバインドしrefreshます。

<unitname>.refreshメソッドの代わりにユニットレベルの関数を取得するために呼び出します。

于 2013-01-30T18:05:57.790 に答える