需要一个表单知道另一个表单来调度行为。在过去,我需要这个,并使用属性来解决。现在,我做了同样的程序,但没有用。
我有下一个 UML 图类,对不起,名称类混淆了:
所以,我需要 ENPViewGeneric 知道 ENPView。孩子们继承了这些知识。
我在ENPViewGeneric中尝试:
unit EnpViewGeneric;
[...]
protected
{ Protected declarations }
FENPForm: TENP;
public
{ Public declarations }
property ENPForm: TENP read FENPForm write FENPForm;
[...]
ENPViewAddAfter实例化在ENPView实例中执行:
procedure TENP.optAddLastOfClick(Sender: TObject);
var
AfterForm: TEnpAddAfter;
begin
AfterForm := TEnpAddAfter.Create(self);
AfterForm.ENPForm := self;
AfterForm.ShowModal();
end;
现在,ENPViewAddAfter实例需要查询ENPView实例。所以,我在ENPView中定义了一个公共方法来进行查询。方法是:
function getSelectedRowValues(): TStringList;
因此,此代码在第一行中因访问冲突而失败:
procedure TEnpAddAfter.FormCreate(Sender: TObject);
var
row: TStringList;
nroMuestraNvo: integer;
begin
row := ENPForm.getSelectedRowValues();
nroMuestraNvo := StrToInt(row[0]) + 1;
muestra.Text := IntToStr(nroMuestraNvo);
end;
有任何想法吗 ?。