zoukankan      html  css  js  c++  java
  • 如何不用MDI方式在Form1上显示Form2

    假设你需要在TForm1的Panel1上显示TForm2,最简单的方法是改写TForm2.
    TForm2=class(TForm)
    private
      ...
    public
      constructor Create(AOwner: TComponent); override;
    end;

    implementation

    constructor TForm2.Create(AOwner: TComponent);
    begin
      inherited;
      Parent := (AOwner as TWinControl);
      ParentWindow := (AOwner as TWinControl).Handle;
    end;

    同时设置TForm2的BorderStyle为bsNone,WindowState为wsMaximized。

    在TForm1的调用时候:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      with TForm2.Create(Panel1) do
        Show;
    end;

    或许有人要问,为什么不直接用TFrame,而要这么费事用TForm。其实,
    最早我也用TFrame实现一些功能,但是,后来发现如果TForm2中需要用
    到一些消息控制,用TFrame方式,就无法接受消息,具体原因还没有查
    过。不过,我觉得这种方式还是蛮不错的。  
  • 相关阅读:
    自己收集的一些伪元素/伪类
    ie9的placeholder不显示的解决办法(包含多个密码框)
    9.14上午
    9.13
    9.11笔记
    html基础英语单词
    选择器的分辨
    学习笔记
    RecyleView
    自定义view获取宽高
  • 原文地址:https://www.cnblogs.com/sonicit/p/822634.html
Copyright © 2011-2022 走看看