Delphi中正常窗口的实现】的更多相关文章

摘要: 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口.而正是这个窗口,使得用VCL开发出来的程序存在着与其他窗口不能正常排列平铺等显得有些畸形的问题.本文通过对VCL的深入分析,给出了一个只需要对应用程序项目文件作3行代码的修改就能解决问题的方案,且不需要原有的编程方式作任何改变. 一.引言 用Delphi所提供的VCL类库编写的Windows应用程序,有一个明显不同于标准Windows窗口的特点--主窗口的系统菜单与任务…
Invalidate方法通知Windows应该重新绘制表单的整个表面.最重要的是Invalidate不会立即强制执行绘制操作. Windows只是存储请求,并且只会响应它当前程序完全执行后,并且只要系统中没有其他待处理事件. Windows故意延迟绘画操作,因为它是最耗时的操作之一.有时,这种延迟,只有在多次更改后才能绘制表单,避免多次连续调用(慢)绘制方法.•Update方法要求Windows立即更新表单的内容并重新绘制.但请记住,只有存在无效区域时才会执行此操作.如果刚刚调用了Invalid…
  求助:有谁知道Delphi中窗口的创建过程,此“窗口”不仅仅指 TForm 类型, 还包括一般的窗口控件,如TButton,TEdit等等,希望有能够十分详细的运作 过程,比如说CreatParams,CreateWindowHandle等等函数的调用情况,可能 调试过 Delphi VCL 源代码这个问题才能解决此问题,我很想知道.谢谢! 你的问题只需要从对象的概念来理解也就好了呀! 其实在Delphi中,所有的VCL不就是一个个对象么? 它有图形外观也是因为它能够响应消息呀!(WM_Pa…
在编写Delphi的应用程序中,常常涉及对其它Windows应用程序的操作.例如,在数据库的管理系统中,财务人员需要使用计算器,即可调用Windows内含的计算器功能,若每次使用,均通过“开始/程序/附件/计算器”来打开计算器,显然是非常繁琐的,当然可以考虑在桌面上建立一“计算器”的快捷方式,且定义一热键,需要使用计算器时,就按下这个热键来打开“计算器”.但由于“计算器”是一个“非模式”窗口程序,即每运行一次计算器,就会打开一个“计算器”窗口,这样的结果是桌面上出现了几十个“计算器”,不仅大量增…
在项目文件 *.DPR (Project->View Source)  里加上{$APPTYPE   CONSOLE} 然后,在需要输出处加上 Writeln(‘your debug message’); 另一方法是从网上找到的,未测试 在Delphi中输出后台调试信息 有些时候,我们需要输出调试信息,但又不在界面上,也不希望弹出窗口中断执行,这时,只要用OutputDebugString就可以了,然后在View|Debug Window|Event Log查看结果即可. 例子: var S :…
DELPHI中MDI子窗口的关闭 和打开       Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会   发觉该子窗口只是最小化,而不是你预期的那样被关闭.解决办法是在子窗口的OnClose事件处理过程中   加入如下代码,示例:   procedure ChildForm.OnClose(Sender: TObject; var Action: TCloseAction); begin    Action := caFree; end;   …
Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭.解决办法是在子窗口的OnClose事件处理过程中加入如下代码,示例: procedure ChildForm.OnClose(Sender: TObject; var Action: TCloseAction);begin   Action := caFree;end; Delphi为一个Form的关闭行为指定了四种方式,分别是: caNone 禁止F…
Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏. Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏.没有MS开发环境中的ShowInTaskBar属性. 解决办法:1.重载窗口 CreateParams 方法以实现,ShowInTaskBar效果   procedure CreateParams(var Params: TCreateParams);override;   procedure Tform1.CreatePara…
使用FlashWindowEx函数: 一.设置FlashWInfoDelphi中TFlashWInfo申明如下:TypeTFlashWInfo = record cbSize : LongInt; hWnd : LongInt; dwFlags : LongInt; uCount : LongInt; dwTimeout : LongInt;end;例:varFWinfo: TFlashWInfo;beginFWinfo.cbSize := 20;FWinfo.hwnd := Applicati…
本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ---Murphy 1,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类,都应该使用overload关键字进行继承,Delphi中的对象没有什么复合的概念,在设计时,从简便的角度出发 一般都设计为耦合性较强,但是使用简单的派生类即可.构造函数不是必写的,除非“复合”这样的对象实现,当省略构造函数时,会由其父类来实现 新对象的建立.下面是几个常用的写法: construc…