Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在主单元中添加单元时类型不兼容_Delphi_Delphi 7 - Fatal编程技术网

Delphi 在主单元中添加单元时类型不兼容

Delphi 在主单元中添加单元时类型不兼容,delphi,delphi-7,Delphi,Delphi 7,我是一名新的Delphi开发人员,遇到了一些奇怪的问题。我必须在我的主目录中添加一个名为Filters的单元,名为Unit1(默认名称)。但是,当我尝试运行代码时,通常是:[Error]Unit1.pas(48):不兼容的类型。如果我从“uses”中删除过滤器,代码将运行。有人知道如何解决这个问题 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, F

我是一名新的Delphi开发人员,遇到了一些奇怪的问题。我必须在我的主目录中添加一个名为Filters的单元,名为Unit1(默认名称)。但是,当我尝试运行代码时,通常是:[Error]Unit1.pas(48):不兼容的类型。如果我从“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)


您在两个不同的单位中定义了
ArrayOfInteger
,这导致了此错误。从其中一个单元中删除定义,或在
var num:ArrayOfInteger
中指定要使用的定义,例如:
TMain.ArrayOfInteger

您在两个不同的单元中定义了
ArrayOfInteger
,这导致了此错误。从其中一个单元中删除定义,或在
var num:ArrayOfInteger
中指定要使用的定义,例如:
TMain.ArrayOfInteger

谢谢!!!!!!!我删除了所有类中的定义,只保留在一个单元中。谢谢!没问题,我在编程中经常遇到这个问题。非常常见且易于修复!您还应该将您的
var-utils:TUtils
重命名为其他名称。如果你有一个变量和一个名为相同的类,编译器可能会把事情搞砸。谢谢!!!!!!!我删除了所有类中的定义,只保留在一个单元中。谢谢!没问题,我在编程中经常遇到这个问题。非常常见且易于修复!您还应该将您的
var-utils:TUtils
重命名为其他名称。如果有一个变量和一个名为相同的类,编译器可能会把事情搞砸。
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;