delphi设计浮动窗口

用过Photoshop的朋友一定对它的那些方便的浮动面板记忆犹新,其实这些面板就是一个个的小窗体,但这些小窗体都放在Photoshop的主窗体上 (不是存在主窗体中),有自己的标题栏、最小化按钮及最大化按钮。但它们与MDI程序不同的是,他们可以拖到主窗体外,更重要的是工作中所有这些面板窗体 与主窗体最处于激活状态。

用Spy & Capture查看一下就不难发现,这些面板窗体的Parent Window都是Photoshop的主窗体(以Photoshop CS为例,主窗体的Handle是001906D8,所有面板的Parent Window指向的就是001906D8),而一般我们创建的窗体的Parent是为None的。

下面的代码就为实现这种Photoshop式浮动窗口的示范:

//......

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//把Form2的Parent改为Form1
Form2 := TForm2.CreateParented(Form1.Handle);
Form2.Show;
//使得Form2处于激活状态
SendMessage(Form2.Handle, WM_NCACTIVATE, Ord(True), 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Close;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
//记得加上这一句
if Form2.Showing then Form2.Close;
end;

end.

上面的代码就可以显示一个与Form1同处激活状态的Form2,再对Form2的BorderStyle与BorderIcons属性作一些必要的选择,就可以实现更加完美的效果!

原文地址:https://www.cnblogs.com/jijm123/p/11192478.html

时间: 2024-11-13 22:15:18

delphi设计浮动窗口的相关文章

Delphi 悬浮窗口、浮动窗口的实现

源:Delphi 悬浮窗口.浮动窗口的实现 浮动窗体的实现 http://blog.tianya.cn/blogger/post_show.asp?BlogID=68097&PostID=806089 需要一个这样的窗体:a:没有标题栏; b:可以改变大小; c:不在任务栏上显示图标; d:如果不是主窗体,它的最小化不受主窗体的限制; e:在最顶端显示 处理:a:不在任务栏出现的,只要设置窗体的属性为ToolWindow就可以了.b:要想使窗体脱离主窗体的限制,必须修改它的ParentWnd,使

delphi浮动窗口

像Photoshop一样的面板窗体,面板窗体与主窗体都处于激活状态. 用Spy & Capture查看一下就不难发现,这些面板窗体的Parent Window都是Photoshop的主窗体(以Photoshop CS为例,主窗体的Handle是001906D8,所有面板的Parent Window指向的就是001906D8),而一般我们创建的窗体的Parent是为None的. 下面的代码就为实现这种浮动窗口的示范: var Form1: TForm1; implementation uses U

Delphi中正常窗口的实现

摘要: 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口.而正是这个窗口,使得用VCL开发出来的程序存在着与其他窗口不能正常排列平铺等显得有些畸形的问题.本文通过对VCL的深入分析,给出了一个只需要对应用程序项目文件作3行代码的修改就能解决问题的方案,且不需要原有的编程方式作任何改变. 一.引言 用Delphi所提供的VCL类库编写的Windows应用程序,有一个明显不同于标准Windows窗口的特点--主窗口的系统菜单与任务

简单的浮动窗口

简单的浮动代码,纯js代码,但不符合w3c标准,在有些HTML规范下不可行, 例如: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 具体原因不清楚,待大神告知. 完整代码如下(字母为背景测试): <html> <head> <me

(转)JS浮动窗口(随浏览器滚动而滚动)

原文:http://hi.baidu.com/aiyayaztt/item/4201c55a6b729dced2e10c79 JS浮动窗口(随浏览器滚动而滚动) 往往用于一些联系方式,互动平台模块,随着浏览器的滚动而滚动. <div id="AdLayer"> <p>窗口中的内容</p> </div> 放在<body>下面(页面最上面) JS代码 window.onload=function(){ var n=0;//top值

半透明信息显示浮动窗口的实现

快乐鹦鹉 原文 半透明信息显示浮动窗口的实现    实现目的 在一些画图软件中,经常需要向用户展示鼠标移动到的位置的对象的一些参数信息.此时,完成一个交互性友好的信息显示界面就相当的重要了.因为一个软件的好坏,在用户的眼中,第一感觉甚至是第一重要的就是视觉效果和可操作性.当然,软件本身的稳定性和效率也很重要.特别对于产品性的软件,在用户展示时,一个优秀的界面效果可以大大加深软件在用户心里的印象分.        功能简介 本功能是作者根据自身软件在用户实际使用过程中对交互性的更高要求而开发的.浮

Android浮动窗口的实现

1.浮动窗口的实现原理 看到上图的那个小Android图标了吧,它不会被其他组建遮挡,也可以响应用户的点击和拖动事件,它的显示和消失由WindowManager直接管理,它就是Android浮动窗口.Android浮动窗口的实现主要是靠WindowManager这个类.通过WindowManager类的addView(),updateViewLayout(),removeView()这几个方法,我们可以直接在Window中添加,更新,移除View. 2.浮动窗口实现的具体步骤 1)既然浮动窗口的

android 浮动窗口学习笔记及个人理解(仿360手机助手)

非常感谢原文作者 http://blog.csdn.net/guolin_blog/article/details/8689140 经自己理解 程序运行界面如下图: 1.程序入口界面 2.小浮动窗口 3.大浮动窗口 由上图可看出,可以看出我们基本需要: 1.一个主Activity 2.小浮动窗口view界面 3.大浮动窗口view界面 对于浮动窗口的管理我们还需要 4.一个Service(在后台监控管理浮动窗口的状态) 5.窗口管理类(创建/消除浮动窗口) 代码: package com.ww.

极简的css浮动窗口

<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <meta name="vi