在Delphi中使用框架的可接受方法是什么?

Gus*_*eno 8 delphi tframe

我正常地在SO周围散步并碰到一些框架讨论.

我主要是Delphi的爱好者,而不是专业人士,所以我必须学习如何以我自己的方式使用TFrame:

  • 在它的单位内创建一个TFrame.
  • 将该单元添加到主窗体Uses子句中.
  • 拥有该TFrame类型的私有变量
  • 表单的OnCreate实例化TFrame并将其附加到Create和.Parent上的TPanel
  • 在我的一个操作集上设置了TFrame.Visible:= True和.BringToFront.

经过一番个人商议,这是我的做法.

还有哪些方法可以使用框架?

Ste*_*eve 14

这是一种方式,它没有任何问题.另一种方法是,在视觉上做到这一点.所以你基本上可以将框架添加到表单中.这样做你:

  • 创建你的框架.
  • 转到您希望放置框架的表单.
  • 添加框架组件(标准选项卡)
  • 从下拉列表中选择您的框架.
  • 而已!

  • 这也是我的首选方法,但在某些情况下,我发现"按需"创建框架很有用.特别是对于用作选项卡式控件一部分的帧,可能永远不会显示. (3认同)

dum*_*uch 6

您的方法唯一的问题是您不能将同一帧的多个实例添加到给定的表单:

Frame1 := TMyFrame.Create(Self);
Frame1.Parent := Self;
// ...
Frame2 := TMyFrame.Create(Self); // bombs out with "a component with the name MyFrame already exists"
Run Code Online (Sandbox Code Playgroud)

他的解决方法是为每个实例分配一个不同的名称:

Frame1 := TMyFrame.Create(Self)
Frame1.Parent := Self;
Frame1.Name := "FirstFrame";
// ...
Frame2 := TMyFrame.Create(Self); // works now, there is no name conflict
Run Code Online (Sandbox Code Playgroud)


Jer*_*ers 5

通过将框架注册为组件,您甚至可以更进一步。

这样一来,一旦框架组件出现在窗体上,您就无法在框架上编辑组件的属性。但是我认为那是一件好事。

除了将框架注册为组件之外,您还需要做其他事情,正如我在本文中关于Delphi所解释的那样-将框架作为可视化组件–不要忘记Sprig!

知识是不是我:我是从雷Konopka的他在一个会议在S 德尔福直播会议在圣何塞今年早些时候。