如何在Delphi7中使用已存在的Form作为Tab

use*_*836 5 delphi pascal

我的Delphi 7应用程序包含我已经制作的多种表单.我现在想让每个单独的表单出现在单个容器表单的单独选项卡中.因为我是Delphi的新手,所以我不知道采取什么方法,那么Delphi中有哪些方法可以帮助我实现这一目标?

谢谢.

Dav*_*nan 8

  1. 创建页面控件,TPageControl.
  2. 添加7页.
  3. 创建您的7个表单.
  4. 将每个表单添加到其选项卡中.

最后一步如下:

Form1.Parent := TabSheet1;
Form1.Align := alClient;
Form1.BorderStyle := bsNone;
Form1.ParentBackground := True;
Run Code Online (Sandbox Code Playgroud)

由于您要为7个表单和7个选项卡执行此操作,因此您需要在数组中执行此操作,并将上面的代码提取到方法中.


bum*_*mmi 7

一种简单的方法是使用ManualDock:

var
 i:Integer;
begin
    // caption of then new tab sheet will be the caption of the form

    Form2.ManualDock(Pagecontrol1);
    Form2.Show;

    // or as loop
    for I := 0 to 5 do
        begin
          With TForm2.Create(self) do
            begin

                ManualDock(Pagecontrol1);
                Show;
            end;
        end;
     Pagecontrol1.ActivePageIndex := 0;
end;
Run Code Online (Sandbox Code Playgroud)


LaK*_*ven 6

而不是表单,使它们成为单独的框架,然后使用对象TFrame上的各个选项卡中的组件TPageControl来生成所需的选项卡布局.这是一个无代码的解决方案.

  • 在您希望在独立模式下使用表单之前,这非常有效.但如果你不想这样做,那么框架就是好的. (2认同)
  • 在这种情况下,您可以创建一个简单的空白表单,在其上放置一个`TFrame`组件并指定您想要的帧.当然,这也可以在运行时使用代码轻松完成.框架是一种非常优雅的解决方案,可以使一个不同的布局独立或与其他对象集成到窗体上.我在VCL上使用Frames进行合成. (2认同)