2017-10-20 75 views
0

我在Delphi中有两个不同的单元。 第一个单元有一个名为ApplyUpdates的过程,它所做的全部都是运行查询。尝试从另一个单元调用过程时发生访问冲突

我需要从另一个单元访问此过程中,当我这样做,我得到的,说:“访问冲突””的错误消息

在第一单元的步骤:

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; 

从第二单元I调用此过程为:

var 
    UserForm: TForm1; 
begin 
    UserForm.ApplyUpdates (AppType); 
end; 

当调试它,它在程序的第一行右停止

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

回答

2

如果窗体自动创建,不要使用本地变量都:

// 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; 
+0

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

相关问题