表单作为实例变量

时间:2013-08-12 21:38:42

标签: delphi properties dispatch

需要一个表单知道另一个,以发送行为。在过去,我需要这个,并解决使用属性。现在,我做同样的程序,但没有用。

我有下一个UML图表类,抱歉,名称类很混乱: enter image description here

所以,我需要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;

因此,此代码因fisrt行中的Access Violation而失败:

procedure TEnpAddAfter.FormCreate(Sender: TObject);
var
  row: TStringList;
  nroMuestraNvo: integer;
begin
  row := ENPForm.getSelectedRowValues();
  nroMuestraNvo := StrToInt(row[0]) + 1;
  muestra.Text := IntToStr(nroMuestraNvo);
end;

任何想法?。

0 个答案:

没有答案