Delphi 试图从另一个单元调用过程时发生访问冲突

Delphi 试图从另一个单元调用过程时发生访问冲突,delphi,Delphi,我在德尔福有两个不同的单位。 第一个单元有一个名为applyUpdate的过程,它所做的只是运行一个查询 我需要从另一个单元访问此过程,当我这样做时,会收到一条错误消息,上面写着“访问冲突” 第一个单元中的程序是: procedure TForm1.ApplyUpdates ( var AppType: string); begin qryApplyUpdates.ParamByName('type').DataType := ftString; qryApplyUpdates.Para

我在德尔福有两个不同的单位。 第一个单元有一个名为
applyUpdate
的过程,它所做的只是运行一个查询

我需要从另一个单元访问此过程,当我这样做时,会收到一条错误消息,上面写着“访问冲突”

第一个单元中的程序是:

procedure TForm1.ApplyUpdates ( var AppType: string);
begin
  qryApplyUpdates.ParamByName('type').DataType := ftString;
  qryApplyUpdates.ParamByName('type').ParamType := ptInput;
  qryApplyUpdates.ParamByName('type').AsString := AppType;
  qryApplyUpdates.ExecSQL;
end;
从第二单元开始,我将此过程称为:

var
  UserForm: TForm1;
begin
    UserForm.ApplyUpdates (AppType );
end;
当我调试它时,它会在过程的第一行停止


我的问题是:我做错了什么,以至于无法从第一个单元访问此过程?

如果表单是自动创建的,则根本不要使用局部变量:

// The default declared variable for an autocreated form is the classname without the prefix
Form1.ApplyUpdates(AppType);
如果表单不是自动创建的,则必须先创建表单,然后才能使用它

var
  UserForm: TForm1;
begin
  UserForm := TForm1.Create(nil);
  try
    UserForm.ApplyUpdates(AppType);
  finally
    UserForm.Free;
  end;
end;

如果表单是自动创建的,则根本不使用局部变量:

// The default declared variable for an autocreated form is the classname without the prefix
Form1.ApplyUpdates(AppType);
如果表单不是自动创建的,则必须先创建表单,然后才能使用它

var
  UserForm: TForm1;
begin
  UserForm := TForm1.Create(nil);
  try
    UserForm.ApplyUpdates(AppType);
  finally
    UserForm.Free;
  end;
end;

太好了!谢谢,我会在几分钟内接受你的回答太好了!谢谢,我会在几分钟内接受你的回答