有6个窗体,1个基本窗体和5个inherited.The基本窗体具有以下代码片段:
procedure TMechan.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Form1.Memo1.Lines.LoadFromFile(OpenDialog1.FileName );
CopyCylMemoToRecord;
ShowMechanicalValues;
end;
因为这个代码片段在Base中,所以它也被其他5个人继承。问题是:当执行OpenDialog时,Base会被覆盖,而不是继承的表单。帮助
发布于 2010-03-18 19:53:59
我不是很确定你说的Base是什么意思,但是你在代码中对Form1
的使用可能应该改为Self
。
Form1
是对(可能)基窗体的一个实例的全局引用。您可以创建无数个TMechan表单实例,其中每个Open1Click
都会更改该表单的一个属性。
我假设表单是自动创建的。虽然这很容易上手,但我强烈建议您不要自动创建每个表单,并尽可能删除所有对表单的全局引用(如此form1)。
唯一应该自动创建的表单是您的主表单。所有其他表单都应在需要时创建,如myform := TMechan.Create(AOwner);
procedure TMechan.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Self.Memo1.Lines.LoadFromFile(OpenDialog1.FileName );
CopyCylMemoToRecord;
ShowMechanicalValues;
end;
https://stackoverflow.com/questions/2469421
复制相似问题