Delphi开发中子窗口不能置顶的问题


本文整理自网络,侵删。

 

在Delphi开发中,如果我们想让一个窗口始终置顶显示,则我们只需要把窗口FormStyle属性设置为fsStayOnTop就可以了,但是如果这个窗口不是主窗口,而是子窗口,那就有些麻烦了,设置FormStyle为fsStayOnTop后也无效。解决办法就是在子窗口中重载CreateParams函数,并将WndParent设置为0即可,具体代码如下:

 

 unit Unit2;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls;

 

type

  TForm2 = class(TForm)

    Button1: TButton;

    Timer1: TTimer;

  private

    { Private declarations }

  public

    { Public declarations }

  protected

    procedure CreateParams(var Params: TCreateParams); override;

  end;

 

var

  Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

{ TForm2 }

 

 

 

procedure TForm2.CreateParams(var Params: TCreateParams);

begin

  inherited;

  Params.WndParent := 0;

//  Params.ExStyle := Params.ExStyle or WS_EX_TOOLWINDOW; //如果不想在任务栏显示窗口图标

end;

end.

 

来源:http://bcoder.com/delphi/sub-window-can-not-set-to-topmost-in-delphi-development

相关阅读 >>

Delphi 系统服务和普通forms程序共存一体的实现

Delphi 取得ie下面输入框内容

Delphi 检测网络是否连通

Delphi 创建一个大小不可改变的窗体,通用模板

Delphi 中压缩流和解压流的应用

Delphi winapi: gettopwindow - 获取指定窗口的子窗口中最顶层的窗口句柄

Delphi indy 10.5.7的数据发送接收的用法

Delphi从网上获取北京时间

Delphi 英文单词第一个字母大写

Delphi 创建自己的定时器 定时清理内存

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...