10 2008 档案
学习 Message(22): WM_SYSCOMMAND 消息[六] : 系统菜单综合操作示例
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; B... 阅读全文
posted @ 2008-10-31 22:09 万一 阅读(3095) 评论(0) 推荐(0) 编辑
学习 Message(21): WM_SYSCOMMAND 消息[五] : 点击关闭按钮让窗体最小化
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure WMSysCommand(var Message: ... 阅读全文
posted @ 2008-10-31 16:57 万一 阅读(4083) 评论(9) 推荐(0) 编辑
学习 Message(20): WM_SYSCOMMAND 消息[四] : 使最大最小化按钮失效
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure WMSysCommand(var Message: ... 阅读全文
posted @ 2008-10-31 16:52 万一 阅读(2935) 评论(0) 推荐(0) 编辑
学习 Message(19): WM_SYSCOMMAND 消息[三] : WParam 参数
摘要:TMessage.WParam 就是 TWMSysCommand.CmdType; 这是系统命令编号. 下面程序会把 WParam 拦截, 并显示的窗体标题. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, S... 阅读全文
posted @ 2008-10-31 16:41 万一 阅读(3961) 评论(0) 推荐(0) 编辑
学习 Message(18): WM_SYSCOMMAND 消息[二] : LParam 参数
摘要:WM_SYSCOMMAND 消息的 LParam 参数是鼠标位置, 低位是 X, 高位是 Y. 下面三段程序是一样的只是使用不同类型的消息参数, 用 TWMSysCommand 更方便, 用 TMessage 更正统. 程序一: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Gr... 阅读全文
posted @ 2008-10-31 16:26 万一 阅读(4326) 评论(2) 推荐(0) 编辑
学习 Message(17): WM_SYSCOMMAND 消息[一]
摘要:已有定义的系统命令常数(感觉有些有问题): SC_SIZE = 61440; SC_MOVE = 61456; SC_MINIMIZE = 61472; SC_MAXIMIZE = 61488; SC_NEXTWINDOW = 61504; SC_PREVWINDOW = 61520; SC_CLOSE = 61536; S... 阅读全文
posted @ 2008-10-31 14:44 万一 阅读(8601) 评论(3) 推荐(0) 编辑
学习 Message(16): 测试 $0118 号消息
摘要:目前对 $0118 号消息的认识: 1、微软和 Delphi 都没有给改消息定义一个常量, 假如定义的话用 WM_SYSTIMER 比较合适; 2、此消息只在文本输入类控件(譬如: TMemo、TRichEdit、TEdit)获得焦点时才会发出, 用于控制输入光标; 3、此消息每秒一次, 和输入光标同步; 4、此消息一旦达到目的立即就返回了, 所以用消息方法和 WndProc、Dispatch 甚... 阅读全文
posted @ 2008-10-31 12:04 万一 阅读(2620) 评论(0) 推荐(0) 编辑
请教大家, 关于 $0118 号消息
摘要:消息值是 $0118 的消息, 是什么消息? 阅读全文
posted @ 2008-10-30 22:57 万一 阅读(1488) 评论(2) 推荐(0) 编辑
根据颜色值获取颜色常量名: ColorToIdent
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TBut... 阅读全文
posted @ 2008-10-30 16:55 万一 阅读(3641) 评论(0) 推荐(0) 编辑
学习 Message(15): 让窗体同时响应键盘事件的方法
摘要:KeyPreview := True; 即可, 它默认是 False; 这对一些快捷键会有用. 测试代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = ... 阅读全文
posted @ 2008-10-30 14:19 万一 阅读(4157) 评论(5) 推荐(0) 编辑
学习 Message(14): 区分左右 Shift、Ctrl、Alt
摘要:代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; procedure For... 阅读全文
posted @ 2008-10-30 13:37 万一 阅读(3466) 评论(2) 推荐(0) 编辑
学习 Message(13): 解析 TWMMouse.Keys 参数
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure MyMouseDown... 阅读全文
posted @ 2008-10-30 13:08 万一 阅读(2346) 评论(0) 推荐(0) 编辑
学习 Message(12): 整合鼠标 Down 消息
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure WMLButtonDown(var Message:... 阅读全文
posted @ 2008-10-30 11:39 万一 阅读(2235) 评论(3) 推荐(0) 编辑
学习 Message(11): 测试 TWMMouse 结构相关的鼠标消息
摘要:和 TWMMouse 一致的消息结构有: TWMLButtonDblClk {左键双击} TWMLButtonDown {左键按下} TWMLButtonUp {左键抬起} TWMMButtonDblClk {中键双击} TWMMButtonDown {中键按下} TWMMButtonUp {中键抬起} TWMMouseMove {鼠标移动} TWMRButton... 阅读全文
posted @ 2008-10-29 17:27 万一 阅读(2774) 评论(3) 推荐(0) 编辑
学习 Message(10): WM_CancelMode 消息测试
摘要:启动模式窗口, 当前窗口会收到一条 WM_CancelMode 消息; 改消息无参数. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm... 阅读全文
posted @ 2008-10-29 16:03 万一 阅读(4179) 评论(0) 推荐(0) 编辑
学习 Message(9): 消息结构纵览
摘要:传递消息就是传递消息数据, 数据是一组数据, 所以消息是一个结构; 系统标准的消息结构在 Delphi 中被定义为 TMsg PMsg = ^TMsg; tagMSG = packed record hwnd: HWND; message: UINT; wParam: WPARAM; lParam: LPARAM; time: DWORD; pt: TPoint; en... 阅读全文
posted @ 2008-10-29 14:29 万一 阅读(6312) 评论(3) 推荐(0) 编辑
当前窗体
摘要:代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; B... 阅读全文
posted @ 2008-10-28 22:50 万一 阅读(2250) 评论(0) 推荐(0) 编辑
学习 Message(8): 使用不同的消息结构
摘要:下面是同样的四段程序, 但分别使用了不同的三种消息结构: TWMMouseMove、TWMMouse、TMessage unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = clas... 阅读全文
posted @ 2008-10-28 18:25 万一 阅读(2860) 评论(4) 推荐(0) 编辑
学习 Message(7): OnMessage 只相应消息队列中的消息
摘要:Perform、SendMessage 会直接发送消息到窗体过程; PostMessage 是把消息放入消息队列. 因为 Application.OnMessage 只接收队列中的消息, 所以 Perform、SendMessage 发送的消息, OnMessage 收不到. 测试如下: 代码文件: unit Unit1; interface uses Windows, Me... 阅读全文
posted @ 2008-10-28 16:58 万一 阅读(5504) 评论(9) 推荐(0) 编辑
合并两个 Wav 文件流的函数 - 回复 "刘文强" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/10/25/1069523.html#1351197 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;... 阅读全文
posted @ 2008-10-25 22:07 万一 阅读(3037) 评论(1) 推荐(0) 编辑
合并两个 Wav 文件的函数
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button... 阅读全文
posted @ 2008-10-25 21:54 万一 阅读(4073) 评论(5) 推荐(0) 编辑
学习 Message(6): 也可以直接覆盖祖先类的 WndProc 或 Dispatch 方法来响应消息
摘要:覆盖: WndProc unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure WndProc(var Me... 阅读全文
posted @ 2008-10-25 12:32 万一 阅读(3100) 评论(1) 推荐(0) 编辑
学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数
摘要:TApplicationEvents.OnMessage 的第二个参数 Handled 如果是 True, 表示消息已经处理过了, 到此为止. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, AppEvnts,... 阅读全文
posted @ 2008-10-25 12:03 万一 阅读(4679) 评论(5) 推荐(0) 编辑
学习 Message(4): 通过 Application.OnMessage 或 TApplicationEvents 响应消息
摘要:通过 Application.OnMessage 响应消息: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: ... 阅读全文
posted @ 2008-10-24 22:38 万一 阅读(5053) 评论(1) 推荐(0) 编辑
学习 Message(3): 响应 WM_LBUTTONDOWN 消息
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; proce... 阅读全文
posted @ 2008-10-24 21:28 万一 阅读(6081) 评论(2) 推荐(0) 编辑
学习 Message(2): 发送 WM_MOUSEMOVE 消息
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPane... 阅读全文
posted @ 2008-10-24 20:49 万一 阅读(6791) 评论(5) 推荐(0) 编辑
学习 Message(1): 消息发送
摘要:消息流程: 譬如用鼠标左键点击一下窗体, 系统会收到一条 WM_LBUTTONDOWN 消息; 当鼠标抬起, 系统又会收到 WM_LBUTTONUP 消息. 系统收到消息后, 会告诉窗体发生的事情, 然后窗体再做出反应; 当然窗体能否做出反应要看窗体是否有相应的响应代码. 要响应 WM_LBUTTONDOWN 消息, 我们需要在 OnMouseDown 事件中写代码; 要响应 WM_LBU... 阅读全文
posted @ 2008-10-24 16:41 万一 阅读(9397) 评论(8) 推荐(1) 编辑
一句话为当前窗口客户区捉图: GetFormImage
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button... 阅读全文
posted @ 2008-10-24 14:42 万一 阅读(2825) 评论(4) 推荐(0) 编辑
建立快捷方式的函数: CreateShortcut - 非常实用、特别方便
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton... 阅读全文
posted @ 2008-10-23 21:05 万一 阅读(8340) 评论(1) 推荐(0) 编辑
BringToFront、SendToBack - 控件置前与置后
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPane... 阅读全文
posted @ 2008-10-23 18:29 万一 阅读(11876) 评论(1) 推荐(1) 编辑
Controls 属性与继承 TShape 类的小练习
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMyShape = class(TShape) protected ... 阅读全文
posted @ 2008-10-23 14:50 万一 阅读(3712) 评论(0) 推荐(0) 编辑
测试 Components 与 Controls 的区别
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPane... 阅读全文
posted @ 2008-10-23 13:32 万一 阅读(7200) 评论(3) 推荐(0) 编辑
VCL 中的 Windows API 函数(8): BeginPath、EndPath
摘要:BeginPath、EndPath 是一组 GDI 图形命令的开始与结束, 在 ExtCtrls 单元有用到. 这里有例子: http://www.cnblogs.com/del/archive/2008/05/23/1206126.html 阅读全文
posted @ 2008-10-22 23:10 万一 阅读(4552) 评论(0) 推荐(0) 编辑
VCL 中的 Windows API 函数(7): BeginPaint、EndPaint
摘要:BeginPaint、EndPaint 是必须同时出现的一对函数, 表示绘图开始与结束, 应该在处理 WM_PAINT 消息是出现. 以下单元在处理 WM_PAINT 消息时都有用到: ComCtrls, Controls, dbcgrids, DBCtrls, dblookup, Forms, OleCtrls 阅读全文
posted @ 2008-10-22 23:01 万一 阅读(3350) 评论(0) 推荐(0) 编辑
关于 Beep、MessageBeep 和 Windows.Beep
摘要:Delphi 在 SysUtils 单元定义 Beep 方法, 可以发出一个声音, 一般用于提醒和调试. Beep 其实是调用的 API 函数: MessageBeep(MB_OK); MessageBeep 有下面几种用法可以调用几种不同的声音文件: MessageBeep(MB_OK); MessageBeep(MB_ICONHAND); MessageBeep(MB_ICONQUEST... 阅读全文
posted @ 2008-10-22 11:47 万一 阅读(8737) 评论(2) 推荐(0) 编辑
使用 png 图片 - 回复 "heyongan" 的问题
摘要:Delphi 2009 有了pngimage、GIFImg 单元, 可以直接使用 png 和 gif 图片了; 如果是设计时给 TImage 装载 png 图片, Delphi 会自动调用 pngimage 单元完成加载, 那动态调用呢? 当然首先要uses pngimage, 然后: unit Unit1; interface uses Windows, Messages, SysUt... 阅读全文
posted @ 2008-10-22 11:17 万一 阅读(6137) 评论(31) 推荐(0) 编辑
VCL 中的 Windows API 函数(6): BeginDeferWindowPos
摘要:BeginDeferWindowPos 和 DeferWindowPos、EndDeferWindowPos 是一组一起使用的函数, 可对一组窗口的位置、大小、Z 序等进行调整, 在 ExtCtrls 单元有用到. 下面先用常规方法实现对 Panel1 中的一组 Button 进行调整, 然后再用上面三个函数重新实现. 本例效果图: 代码文件: unit Unit1; interfac... 阅读全文
posted @ 2008-10-20 14:10 万一 阅读(4592) 评论(0) 推荐(0) 编辑
VCL 中的 Windows API 函数(5): AlphaBlend
摘要:AlphaBlend 是指定图像混合透明的函数, 在 Graphics、GraphUtil、RibbonStyleActnCtrls 单元用到. 下面的测试是把一张图片显示在窗体, 并可以调整透明度. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Gr... 阅读全文
posted @ 2008-10-20 01:38 万一 阅读(3999) 评论(5) 推荐(0) 编辑
VCL 中的 Windows API 函数(4): AdjustWindowRectEx
摘要:AdjustWindowRectEx 用在了 Forms、DBCtrls 单元. AdjustWindowRectEx 可以根据窗口样式获取的边缘尺寸. 测试: var R: TRect; begin SetRect(R, 0, 0, 0, 0); {此矩形不是全局变量, 需要初始为空} AdjustWindowRectEx(R, ... 阅读全文
posted @ 2008-10-20 00:13 万一 阅读(3072) 评论(0) 推荐(0) 编辑
VCL 中的 Windows API 函数(3): AdjustTokenPrivileges
摘要:AdjustTokenPrivileges 函数应用在 IdGlobalProtocols 单元, 暂不理解. 阅读全文
posted @ 2008-10-19 23:30 万一 阅读(2759) 评论(0) 推荐(0) 编辑
简单读取网上的文本文件
摘要:第一步: 先把文本文件虚拟成一个 XML 文件, 譬如: 这是文本内容 第二步: 传到网上, 譬如我是放在: http://www.132435.com/down/test.txt 第三步: 用 TXMLDocument 控件读取, 只需要两行代码: unit Unit1; interface uses Windows, Messages, SysUtils, Varia... 阅读全文
posted @ 2008-10-19 21:00 万一 阅读(2669) 评论(5) 推荐(0) 编辑
VCL 中的 Windows API 函数(2): ActivateKeyboardLayout
摘要:ActivateKeyboardLayout 分别在 Controls、DBGrids、Grids 单元用到, 基本都是如下语句: ActivateKeyboardLayout(Screen.DefaultKbLayout, KLF_ACTIVATE); {表示激活当前输入法} 函数字面的意思是键盘布局, 好像键盘布局是比输入法更大的一个概念. 在 Delphi 中我们可以通过控件的 Ime... 阅读全文
posted @ 2008-10-18 21:56 万一 阅读(4000) 评论(0) 推荐(0) 编辑
VCL 中的 Windows API 函数(1): AbortDoc
摘要:AbortDoc: 该函数终止当前打印作业并删除最好一次调用 StartDoc 函数写入的所有信息. 该函数在 Printers 单元的应用: AbortDoc(Canvas.Handle); 阅读全文
posted @ 2008-10-18 11:43 万一 阅读(3519) 评论(0) 推荐(0) 编辑
复制动态数组
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCr... 阅读全文
posted @ 2008-10-14 10:38 万一 阅读(6392) 评论(14) 推荐(0) 编辑