首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Delphi 7继承

Delphi 7继承
EN

Stack Overflow用户
提问于 2010-03-18 19:32:39
回答 1查看 314关注 0票数 1

有6个窗体,1个基本窗体和5个inherited.The基本窗体具有以下代码片段:

代码语言:javascript
运行
复制
procedure TMechan.Open1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Form1.Memo1.Lines.LoadFromFile(OpenDialog1.FileName );
  CopyCylMemoToRecord;
  ShowMechanicalValues;
end;

因为这个代码片段在Base中,所以它也被其他5个人继承。问题是:当执行OpenDialog时,Base会被覆盖,而不是继承的表单。帮助

EN

回答 1

Stack Overflow用户

发布于 2010-03-18 19:53:59

我不是很确定你说的Base是什么意思,但是你在代码中对Form1的使用可能应该改为Self

Form1是对(可能)基窗体的一个实例的全局引用。您可以创建无数个TMechan表单实例,其中每个Open1Click都会更改该表单的一个属性。

我假设表单是自动创建的。虽然这很容易上手,但我强烈建议您不要自动创建每个表单,并尽可能删除所有对表单的全局引用(如此form1)。

唯一应该自动创建的表单是您的主表单。所有其他表单都应在需要时创建,如myform := TMechan.Create(AOwner);

代码语言:javascript
运行
复制
procedure TMechan.Open1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Self.Memo1.Lines.LoadFromFile(OpenDialog1.FileName );
  CopyCylMemoToRecord;
  ShowMechanicalValues;
end;
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2469421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档