在主单元中添加单元时不兼容的类型
Incompatible types when add unit in main unit
我是一名新 Delphi 开发人员,遇到了一些奇怪的问题。我必须在名为 Unit1(默认名称)的主要单元中添加一个名为 Filters 的单元。但是,总是当我尝试 运行 代码时:[Error] Unit1.pas(48): Incompatible types。如果我从 "uses" 中删除过滤器,代码 运行。有人知道如何解决这个问题。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
ArrayOfInteger = array of integer;
TMain = class(TForm)
MainMenu1: TMainMenu;
options: TMenuItem;
checkResult: TMenuItem;
GerarJogos1: TMenuItem;
exit: TMenuItem;
edtGame: TEdit;
mmoResult: TMemo;
btnConfirm: TButton;
procedure btnConfirmClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
uses Utils, Error, Filters;
{$R *.dfm}
procedure TMain.btnConfirmClick(Sender: TObject);
var utils: TUtils;
var filter: TFilters;
var error: Errors;
var num: ArrayOfInteger;
var nstr, str: string;
begin
SetLength(num, 6);
FillChar(str, SizeOf(str), #0);
FillChar(nstr, SizeOf(nstr), #0);
utils := TUtils.Create;
filter := TFilters.Create;
error := Errors.Create;
str := edtGame.Text;
num := utils.strInput(str);
第 48 行:num := utils.strInput(str);
unit Filters;
interface
uses Classes, SysUtils, Math;
type
ArrayOfInteger = array of integer;
TFilters = class
private
protected
public
Constructor Create;
// function isPair(number: integer): Boolean;
//function fSum(numbers: ArrayOfInteger): Boolean;
//function fNLNPNO(numbers: ArrayOfInteger): integer;
end;
implementation
Constructor TFilters.Create;
begin
Inherited Create;
end;
您在两个不同的单位中定义了 ArrayOfInteger
,这导致了此错误。从其中一个单位中删除定义或在 var num: ArrayOfInteger
中指定您要使用的定义,例如:TMain.ArrayOfInteger
我是一名新 Delphi 开发人员,遇到了一些奇怪的问题。我必须在名为 Unit1(默认名称)的主要单元中添加一个名为 Filters 的单元。但是,总是当我尝试 运行 代码时:[Error] Unit1.pas(48): Incompatible types。如果我从 "uses" 中删除过滤器,代码 运行。有人知道如何解决这个问题。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
ArrayOfInteger = array of integer;
TMain = class(TForm)
MainMenu1: TMainMenu;
options: TMenuItem;
checkResult: TMenuItem;
GerarJogos1: TMenuItem;
exit: TMenuItem;
edtGame: TEdit;
mmoResult: TMemo;
btnConfirm: TButton;
procedure btnConfirmClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
uses Utils, Error, Filters;
{$R *.dfm}
procedure TMain.btnConfirmClick(Sender: TObject);
var utils: TUtils;
var filter: TFilters;
var error: Errors;
var num: ArrayOfInteger;
var nstr, str: string;
begin
SetLength(num, 6);
FillChar(str, SizeOf(str), #0);
FillChar(nstr, SizeOf(nstr), #0);
utils := TUtils.Create;
filter := TFilters.Create;
error := Errors.Create;
str := edtGame.Text;
num := utils.strInput(str);
第 48 行:num := utils.strInput(str);
unit Filters;
interface
uses Classes, SysUtils, Math;
type
ArrayOfInteger = array of integer;
TFilters = class
private
protected
public
Constructor Create;
// function isPair(number: integer): Boolean;
//function fSum(numbers: ArrayOfInteger): Boolean;
//function fNLNPNO(numbers: ArrayOfInteger): integer;
end;
implementation
Constructor TFilters.Create;
begin
Inherited Create;
end;
您在两个不同的单位中定义了 ArrayOfInteger
,这导致了此错误。从其中一个单位中删除定义或在 var num: ArrayOfInteger
中指定您要使用的定义,例如:TMain.ArrayOfInteger