当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: Delphi中正常窗口的实现 摘要 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口。
 

 

    摘要: 近日在试用d2005时,发现了一个烦人的问题。用d2005 开发asp.net web application应用, 页面设计使用dreamweavermx2004, 页面中使用了模板功能, dreamweaver会在页面中生成其页面模板标记,接着在d2005中修改该页面,当保存该aspx页面文件时,d2005自动修改了其页面模板标记的位置,造成错误的代码标记,这种问题还没有找到解决的方法,不知......
 ·creating forms that are stored in dlls    »显示摘要«
    摘要: there are lots of resources and solutions out there on the internet that are specific to this problem, however, in using the businessskinform components, that are tightly integrated with the vcl and ......


Delphi中正常窗口的实现

delphi中正常窗口的实现

关键字 vcl,正常窗口,正常化 【程序编程相关:IntToBin(2-16进制转换函数)

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

【扩展信息:在Access中创建表及如何指定字段类型

1 引言

用delphi所提供的vcl类库编写的windows应用程序,有一个明显不同于标准windows窗口的特点--主窗口的系统菜单与任务栏上的系统菜单不相同.一般情况下,主窗口的系统菜单有六个菜单项而任务栏系统菜单只有三个菜单项.实际使用中我们发现用vcl开发的程序有以下几个方面的尴尬:

1)不够美观.这是肯定的,与标准不符自然会显得有些畸形.

2)主窗口最小化时没有动画效果.

3)窗口不能正常与其它窗口排列平铺.

4)任务栏系统菜单具有最高的优先级.在存在模态窗口的情况下整个程序仍然可以被最小化,与模态窗口的设计相违背.

主窗口最小化动画效果的问题在delphi 5.0以后的版本中已通过forms.pas中的showwinnoanimate函数解决,但其余几个问题则一直存在.尽管多数情况下这不会对应用程序带来什么影响,但在一些追求专业效果的场合确实不可接受的.由于c++ builder与delphi使用的是同一套类库,所以上述问题同样存在于使用c++ builder编写的windows应用程序中.

在以前的文章里(阿甘的家中可以找到),我已讨论过这个问题,当时的叙述看起来基本上是一种取巧的方法,而我也是在偶然之中才找到那个方法的.本文的任务就是通过对vcl类库作一些分析,说明那样做的原理,其次再给出一个只用3行代码的方法,完完全全地解决delphi中这个"非正常窗口"的问题.

2 原理

2.1 应用程序的创建过程

下面是一个典型的应用程序的delphi工程文件,我们注意到一开始就有一个对application对象的initialize方法的引用,我们的分析也就从这里开始:

program project1;

uses

  forms,

  unit1 in unit1.pas {form1};

{$r *.res}

begin

  application.initialize;

  application.createform(tform1, form1);

  application.run;

end.

隐藏的窗口是由application对象创建的,那么application对象又从何而来呢?在delphi的代码编辑窗口中按住ctrl点击application就会发现,application对象是在forms.pas单元中定义的几个全局对象之一.
...   下一页

    摘要: 之前用的是java那一套东西,有eclipse什么都搞定了。现在因为要用delphi改一个即时通讯软件的缘故,想着怎么能把重构和单元测试那一套搬到delphi这边来。书上说给现有的代码加单元测试能够加深对代码的理解,并且可以作为改善代码的基础,这不正是我要做的事情吗?于是,为了搭建这么一个敏捷平台,我以delphi2005和dunit进行了一点小小的尝试,并把结果记录于下,与大家分享。   1、......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE