首页 相关文章 Delphi中正常窗口的实现

Delphi中正常窗口的实现

Delphi中正常窗口的实现

  摘要 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口。而正是这个窗口,使得用VCL开发出来的程序存在着与其他窗口不能正常排列平铺等显得有些畸形的问题。本文通过对VCL的深入分析,给出了一个只需要对应用程序项目文件作3行代码的修改就能解决问题的方案,且不需要原有的编程方式作任何改变。

  关键字 VCL,正常窗口,正常化

  1 引言
  
用Delphi所提供的VCL类库编写的Windows应用程序,有一个明显不同于标准Windows窗口的特...[ 查看全文 ]

2016-02-19 标签:
  • 在可视化开发的时代,窗体是绝大部分应用程序的核心,但是开发者也许已对Windows一成不变的方形窗体感到厌烦。其实巧妙地使用API函数即可实现汉字形状的窗体。 本文的实例运行后将显示一个由电脑报三个汉字作为外形的窗体。当然你还可以利用本期讲的方法实现更有个性的汉字窗口。 设计思路 1犑褂肂eginPath和EndPath函数为窗体定义路径。 2犛肞athToRegion将路径转换为Region数据。 ...[ 查看全文 ]
  • 单例模式用于限制进程中只有一个某个类的对象,本例的Singleton是一个线程实例,在每一个时钟到达时检测是否到达某个时刻(本例的时刻存于Ini文件中),如果到达则产生一个线程,但是如果在这个线程完成其任务前又到达一个时钟,则有可能会产生多个线程执行任务,以致出现混乱,所以考虑使用Singleton模式解决这个问题(当然还有其他解决方案,但本例使用的是Singleton)。 核心代码如下: //timer...[ 查看全文 ]
  • 控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数 首先定义常数 const EWX_FORCE=4; //关闭所有程序并以其他用户身份登录 EWX_LogoFF=0; //重新启动计算机并切换到MS-DOS方式 EWX_REBOOT=2; //重新启动计算机 EWX_SHUTDOWN=1;//关闭计算机 运行时给How赋值,让他等于EWX_SHUTDOWN或其他...[ 查看全文 ]
  • 四四方方的窗体也会变形,利用win32 API函数setwindowrgn就可以将窗口定义为任何形状,以下是将窗口定义为园角矩形的例子: procedure TPortForm.FormCreate(Sender: TObject);var hr :thandle;beginhr:=createroundrectrgn(0,0,width,height,20,20);//定义园角矩形(win API函数)setwindowrgn(handle,hr,true); //设置园角窗口end; 为了使该窗口更好,应在onResize事件处理程序放相同的代码...[ 查看全文 ]
  • 智能ABC窗口的实现 作者:王海军 下载源代码 高级顶层窗口是一种无标题栏、菜单、工具条的一种常居顶层的窗口,最常见的例子就是输入法窗口,比如智能ABC窗口。这类窗口的特点除了上边所说的,最重要的就是窗口移动。普通窗口移动是通过标题栏由系统自动实现的,对于这类窗口就无法依靠系统了,需要手工实现。实现的方法有两种:手工处理WM_MOVE、WM_LBUTTONUP消息...[ 查看全文 ]
  • 标签:Delphi
    在数据库管理系统中,数据录入是数据处理的基本功能,录入操作方便与否是衡量数据库应用程序交互良莠的指标之一。录入中除了应要对录入数据进行合法检验外,还应为用户提供更多的方便操作,即对于“规范性”数据,如:性别、职称等字段的数据,应尽可能供用户“选择”录入,而非直接文字输入,另外,如:出生年月、联系电话、邮编等类似名称的字段,程序应设置数据录入格式,这可以从一定程度 上“规范...[ 查看全文 ]
  • 当你做一个多媒体播放器时,难免少不了控制音量的大小和左右声道的播放,下面就介绍一种控制Wave波形输出设备音量的方法,该方法不是设置主音量。先在窗体上放两个TTrackBar,分别命名为TrackBar1,TrackBar2,属性Max都设置为65535,如果觉得刻度太密了,可以把Frequency属性值设置大一些,然后在Uses段加入MMSystem,并在TrackBar1和TrackBar2的OnChange事件都写上下列语句: procedure TForm1.Tr...[ 查看全文 ]
  • 标签:Delphi
      文件关联为我们带来很多的方便。Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容。 Function GetAssociatedExec(FileExt: String; var FileDescription, MIMEType: String): String; Var Reg: TRegistry; FileType: String; begin Result := ′′;{函数返回值是打开FileExt文件的可执行程序的名字及其参数} Reg := TRegistry...[ 查看全文 ]
  • 标签:Delphi
      给单位开发软件,涉及一打印模块,我感到颇有兴趣,就拿来其中的一个小功能模块与读者共享。下面以打印在纸张的矩形框内为例简单介绍: 程序要求: 单击[打印]按钮,把Memo的内容最多分三行打印出来,每行最多能容纳22个三号字,限定汉字上限为50个汉字。 编程思路: 用LineTo和MoveTo函数画一矩形框,根据Memo组件的内容长度用Copy函数把它分割为1到3个子串。在矩形框...[ 查看全文 ]
  • 在Delphi中使用TidIcmpClient控件可以非常简单的实现图形界面的Ping! 新建一个工程,命名为 PingGUI.dpr ,窗口命名为“frmPing”,加入如下组件:     lstReplies: TListBox;     ICMP: TIdIcmpClient;     Panel1: TPanel;     btnPing: TButton;     edtHost: TEdit;     spnPin...[ 查看全文 ]
  • 标签:Delphi
    摘要:本文介绍了在Windows平台下串口开发的方法,并给出一个使用Delphi设计的远程数据采集的实例。 关键词:远程数据采集 AcitiveX MSComm控件 1 引言 在工业生产实践中,使用PC机对Inprise公司推出的Delphi是一种功能强大的高级编程语言,其具有可视化面向对象的特征,特别适合Windows平台下的图形界面和用户程序的编制。本文就介绍在Windows平台下用Delphi开发串口的方法和使用Delph...[ 查看全文 ]
  • 我们知道,屏幕分辨率的设置影响着表单布局,假设你的机器上屏幕分辨率是800*600,而最终 要分发应用的机器分辨率为640*480,或1024*768,这样你原先设计的表单在新机器上势必会 走样。这时你一定希望表单能自己适应不同的分辨率,下面就有两种方法可供你参考。 一、根据新的分辨率自动重画表单及控件 先在表单单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为 单位)...[ 查看全文 ]
  • 一、实现对话框 ATL中有三个模板类可用于创建一个对话框: (1)CSimpleDialog:创建模式对话框, 可以host Windows Controls template < WORD t_wDlgTemplateID, BOOL t_bCenter = TRUE > class CSimpleDialog : public CDialogImplBase (2)CDialogImpl:创建模式或非模式对话框, 可以host Windows Controls template < class T, class TBase = CWindow > class ATL_NO_V...[ 查看全文 ]
  • 用DELPHI实现文件加密压缩 作者: e梦缘 (wnhoo) Mail:wnhoo@163.com 风花雪月 e梦情缘 点击下载此详细说明文件 概述: 在这篇文件中,讲述对单个文件的数据加密、数据压缩、自解压的实现。同样,也可以实现对多个文件或文件夹的压缩,只要稍加修改便可实现。 关键字:加密压缩、Zlib、流、资源文件 引 言: 在日...[ 查看全文 ]
  • 标签:Delphi
    二、IP头结构 我们知道,TCP/IP网络数据全部是通过封装在IP数据包中在Internet网上传送的,也就是封装建立起一个包含IP头和数据的IP数据报。一般来说,网络软件总是以多个32位字产生IP头,即使必须用附加的0填充IP头。IP头包含了传输IP数据包中封装数据的所有必要信息。IP头的数据结构和描述如下: 成员长度(Bit)描述 Version4 IP头的版本号,目前是IPv4,最新是IPv6 Header Length4 IP头的长...[ 查看全文 ]
  • 如果你是做一些多媒体播放器之类的程序时,为了完善系统的容错性,就必须用到一些检测系统的功能,其中检测声卡是否存在就是一个问题,下列程序帮你忙,首先需要在uses部分加入mmsystem ,接着在窗体创建时检测声卡: procedure TForm1.FormCreate(Sender: TObject);var i:Integer;begini := auxGetNumDevs();if i= thenlabel1.Caption :=系统没有发现声卡;end; [ 查看全文 ]
  • 标签:Delphi
    如果我们把Handle指向桌面,哪TMediaPlay将会在桌面播放。与TCanvas不同的是,TWinControl的Handle的属性是只读的,并且GetHandle方法是静态方法,这说明,我们要Handle指向桌面只有两种方法 修改TWinControl,让Handle可写。 建立TWinControl子类,并隐藏TWinControl.GetHandle方法,在新方法中返回桌面句柄。 其中第二种方法比较好. TSurpriseDisplay=class(TWinControl) protected...[ 查看全文 ]
  • 标签:Delphi
      Delphi关键字导航 网络 界面 多媒体 数据库 图像 控件 文件 硬件  在做Mis项目过程中,有时需要让用户自己来实现窗体控件的布局,比如酒店管理中就需要对餐厅餐桌位置进行布局。要实现这种功能,必须做好三件事: 1、设置进入控件边缘的光标形状; 2、改变控件的大小及位置; 3、保存窗体控件的位置及状态,窗体下次启动时重新设置它们的这些信息。具体步骤如下: 1、修改控件光标。只...[ 查看全文 ]
  • 标签:Delphi
      各位亲爱的读者,在delphi编程实战中我们可以使用按钮控件来制作程序中的按钮键。但是在使用其它软件时,我们常常可以看到透明按钮的效果。那么如何在delphi中实现透明按钮的效果?笔者在互联网搜索了不少时间也没有找到这方面的控件,于是决定自己DIY一番,下面笔者就将自己的经验与广大读者共享一番。 要实现透明按钮,共需要三个控件-image、label、bevel。其中image控件是为了突出透明...[ 查看全文 ]
  • 标签:Delphi
    用过一般的杀毒软件,都知道,启动程序时,常会问,网上已经有新版本的,是否升级之类的提示,现在越来越多的软件都支持在线升级,你是否也想实现这个功能?本文就如何实现在线升级,讲述一下如何通过HTTP检测是否需要下载升级版本,下载并升级。 实现步骤: 1、网站提供升级信息。 2、使用HTTP从网站下载升级信息。 3、确定是否进行升级 4、升级程序 下面我们定义...[ 查看全文 ]
手机页面 收藏网站 回到头部