04 2008 档案
不使用标题栏拖动窗体
摘要:方法一、二、三效果图:方法四效果图:方法一:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject;... 阅读全文
posted @ 2008-04-30 22:26 万一 阅读(5862) 评论(6) 推荐(0) 编辑
创建异形窗口[5]
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedur... 阅读全文
posted @ 2008-04-30 22:23 万一 阅读(3134) 评论(0) 推荐(0) 编辑
创建异形窗口[4]
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; ... 阅读全文
posted @ 2008-04-30 21:39 万一 阅读(3112) 评论(2) 推荐(0) 编辑
创建异形窗口[3]
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; p... 阅读全文
posted @ 2008-04-30 17:23 万一 阅读(3392) 评论(10) 推荐(0) 编辑
创建异形窗口[2]
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedur... 阅读全文
posted @ 2008-04-30 16:59 万一 阅读(3146) 评论(0) 推荐(0) 编辑
创建异形窗口[1]
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2:... 阅读全文
posted @ 2008-04-30 16:15 万一 阅读(3957) 评论(2) 推荐(0) 编辑
使用 WM_NCHITTEST 消息判断鼠标所在窗口的部位
摘要:本例效果图: WM_NCHITTEST 消息返回后, 消息的 Result 参数表示了鼠标所在窗口的部位. 窗体设计步骤: 新建工程后, 随便添加一个菜单; 设置窗体的 AutoScroll 属性为 True, 并添加一个 Panel 放在合适的位置, 以让窗口出现滚动条. unit Unit1; interface uses Windows, Messages, SysUtils, ... 阅读全文
posted @ 2008-04-30 14:56 万一 阅读(9939) 评论(4) 推荐(0) 编辑
演示控件的 Anchors 属性
摘要:本例效果图: 准备工作: 新建工程后, 在窗体上添加一个 Panel 和四个 CheckBox; 双击它们产生默认事件, 然后全选代码, 用下面代码覆盖. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Std... 阅读全文
posted @ 2008-04-29 21:26 万一 阅读(4680) 评论(4) 推荐(0) 编辑
动态列表
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPane... 阅读全文
posted @ 2008-04-29 14:28 万一 阅读(2435) 评论(8) 推荐(0) 编辑
菜单的历史信息
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TForm1 = class(TForm) MainMenu1: TMainMenu; OpenDia... 阅读全文
posted @ 2008-04-28 21:52 万一 阅读(2651) 评论(3) 推荐(1) 编辑
给系统菜单添加菜单项
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); ... 阅读全文
posted @ 2008-04-28 21:43 万一 阅读(3128) 评论(3) 推荐(0) 编辑
一行代码设置颜色的控件
摘要:本例效果图: 提示: 新建工程后, 添加 TColorBox、TColorListBox、TColorGrid、TButtonColor 四个控件, 分别双击它们建立默认事件, 然后贴入下面代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, ... 阅读全文
posted @ 2008-04-27 22:42 万一 阅读(3945) 评论(1) 推荐(0) 编辑
分析 TStringList 存取对象的特点 - 还是回复 Test1234 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/04/26/973346.html#1171927 在 Delphi 中存储系列对象, 大家常用 TList 类; 有了 TObjectList(在 Contnrs 单元)以后, 存储对象就有了更好的选择, 因为从 TObjectList 列表中移除的对象同时会得到释放. 很少有人使用 TStringLis... 阅读全文
posted @ 2008-04-26 22:25 万一 阅读(8312) 评论(6) 推荐(0) 编辑
用 TStringList 存取结构的例子 - 回复 Test1234 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/04/25/973346.html#1171532 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; ... 阅读全文
posted @ 2008-04-25 21:56 万一 阅读(2498) 评论(0) 推荐(0) 编辑
Windows 编程[23] - 快捷键资源
摘要:提示: 1、因为加入快捷键, 本例的基础代码和以前不同了; 因为窗体初始化时要先载入快捷键资源, 还要拦截快捷键消息另作处理. 2、关于快捷键的话题, 以前接触过不少了, 但那些都不是本质: 注册系统级热键 所有可选的快捷键列表 快捷键设置控件 快捷键的记录方式 3、我曾经以为快捷键不过就是拦截键盘消息, 现在看来那是想得太简单了; 很容易就可以说明: 键盘消息是... 阅读全文
posted @ 2008-04-24 22:34 万一 阅读(5620) 评论(5) 推荐(0) 编辑
Windows 编程[22] - 菜单选择与画刷修改
摘要:提示: 1、CheckMenuItem 函数用来改变菜单项的选择状态; 2、SetClassLong 函数可以修改窗口类注册前登记的所有参数, 这里通过 GCL_HBRBACKGROUND 参数指示要修改画刷; 3、用 CreateSolidBrush 函数根据常量数组中的颜色建立实心画刷; 4、InvalidateRect 用来是客户区无效, 从而导致重绘, 它的第二个参数为 nil 表示要操作... 阅读全文
posted @ 2008-04-24 16:35 万一 阅读(2785) 评论(0) 推荐(0) 编辑
判断一个数组的长度用 Length 还是 SizeOf ?
摘要:最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组、且元素大小是一个字节, 这样用看不出错误, 譬如: var arr1: array[0..9] of Char; arr2: array[0..9] of Byte; begin ShowMessageFmt('%d,%d,%d,%d',[Length(... 阅读全文
posted @ 2008-04-23 22:26 万一 阅读(21780) 评论(6) 推荐(0) 编辑
Windows 编程[21] - WM_MENUSELECT 消息与 GetMenuString 函数
摘要:提示: 1、菜单项的标识存放在 WM_MENUSELECT 消息的 lParam 参数中的低两位. 2、WM_MENUSELECT 也包括系统菜单发送的消息. 3、因为顶层菜单(File Edit Help)一般在资源文件中设同样的标识符(譬如: 65535), 所以系统会把它们的位置(或者叫顺序)当作标识; 因此执行 GetMenuString 时, 需要使用用非默认(非0)的 MF_BYPO... 阅读全文
posted @ 2008-04-23 17:58 万一 阅读(4396) 评论(4) 推荐(0) 编辑
关于 Lo、Hi、LoWord、HiWord
摘要:Cardinal 是 4 字节无符号的整型, 先看一个例数: Cardinal 例数: 4277991664 按字节划分: 第四字节 第三字节 第二字节 第一字节 二进制: 11111110 11111100 11111000 11110000 十六进制: FE FC F8 F0 十进制: 254 252 248 240 按双字节划分: 高两位 低... 阅读全文
posted @ 2008-04-23 15:14 万一 阅读(10980) 评论(3) 推荐(0) 编辑
Windows 编程[20] - 改变菜单项并换行
摘要:本例效果图: 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGIN MENUITEM "File" ,101 MENUITEM "Add" ,102 END 本例代码文件: program Project1; {$R 'TestRes.res' 'TestRes.rc'} uses Windows, Messages; var ... 阅读全文
posted @ 2008-04-23 02:46 万一 阅读(2162) 评论(3) 推荐(0) 编辑
Windows 编程[19] - 改变菜单项的状态: GetMenuState、EnableMenuItem
摘要:本例效果图: 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGIN MENUITEM "菜单" ,101 MENUITEM "改变我的禁止与非禁止状态" ,102 MENUITEM "改变" ,103 END 本例代码文件: program Project1; {$R... 阅读全文
posted @ 2008-04-23 02:13 万一 阅读(4563) 评论(8) 推荐(0) 编辑
Windows 编程[18] - 更换菜单项: ModifyMenu
摘要:本例效果图: 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGIN MENUITEM "Open" ,101 MENUITEM "Old" ,102 MENUITEM "Help" ,103 END 本例代码文件: program Project1; {$R 'TestRes.res' 'TestRes.rc'} uses ... 阅读全文
posted @ 2008-04-22 23:24 万一 阅读(3024) 评论(2) 推荐(0) 编辑
Windows 编程[17] - 更换菜单: LoadMenu、DestroyMenu、SetMenu
摘要:本例效果图: 本例在资源文件中备有两组菜单, 程序实现运行时切换. 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGIN MENUITEM "Open" ,101 MENUITEM "Edit" ,102 MENUITEM "Help" ,103 MENUITEM "Chinese" ,104 ,MFT_RIGHTJUST... 阅读全文
posted @ 2008-04-22 22:48 万一 阅读(3674) 评论(3) 推荐(0) 编辑
Windows 编程[16] - 添加与删除菜单项:GetMenu、AppendMenu、DeleteMenu、DrawMenuBar
摘要:本例效果图: 本例在窗体建立时, 动态添加了三个菜单; 并赋予它们自我删除的功能. 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGIN POPUP "&File" BEGIN MENUITEM "E&xit" ,101 END END 本例代码文件: program Project1; {$R 'TestRes.res' '... 阅读全文
posted @ 2008-04-22 22:02 万一 阅读(6024) 评论(1) 推荐(0) 编辑
Windows 编程[15] - 菜单消息: WM_COMMAND
摘要:本例效果图: 点击任一个菜单项, 都会发出一个 WM_COMMAND 消息, 消息的 wParam 参数的低两位就是标识菜单项的那个整数! 本例使用的资源文件(TestRes.rc): #define IDM_New 101 #define IDM_Open 102 #define IDM_Save 103 #define IDM_Exit 104 #define IDM_Cut... 阅读全文
posted @ 2008-04-22 13:24 万一 阅读(4746) 评论(0) 推荐(0) 编辑
Windows 编程[14] - 菜单与菜单资源(三)
摘要:前面我们分别使用过 MENU 和 MENUEX 来指定菜单资源, 我发现用 MENU 不必注意大小写; 但 MENUEX 在使用参数时需要注意大小写! 另外, 指定相同的功能时, 它们使用的参数和格式也有很大的区别. 我想还是多了解 MENUEX 吧, 因为它的参数同时也是 Win32API 菜单函数们 需要的! MENUEX 有四个参数, 分别是: 菜单文本, 菜单标识(整数), 菜单格式(常... 阅读全文
posted @ 2008-04-22 11:55 万一 阅读(3334) 评论(2) 推荐(0) 编辑
Windows 编程[13] - 菜单与菜单资源(二)
摘要:我们可以把上例中的资源文件修改成这样: MyMenu1 MENUEX BEGIN POPUP "&File" ,65535 BEGIN MENUITEM "&New" ,101 MENUITEM "&Open" ,102 MENUITEM "&Save" ,103 MENUITEM SEPARATOR MENUITEM ... 阅读全文
posted @ 2008-04-21 21:27 万一 阅读(3619) 评论(3) 推荐(0) 编辑
Windows 编程[12] - 菜单与菜单资源(一)
摘要:假如我们用 TMainMenu 控件设计如下菜单: 该菜单在窗体源文件中是这样存储的: object MainMenu1: TMainMenu Left = 160 Top = 104 object File1: TMenuItem Caption = '&File' object New1: TMenuItem Caption = '&New' end objec... 阅读全文
posted @ 2008-04-20 12:17 万一 阅读(4177) 评论(1) 推荐(0) 编辑
Windows 编程[11] - WM_SIZE 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_SIZE 消息调用的自定义过程} procedure OnSize(h: HWND); var Rect: TRect; pt: TPoint; buf: array[0..255] of Char; begin GetWindowRect(h, Rect); ... 阅读全文
posted @ 2008-04-19 15:54 万一 阅读(4636) 评论(29) 推荐(0) 编辑
Windows 编程[10] - WM_LBUTTONDOWN、WM_LBUTTONUP 和 WM_MOUSEMOVE 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_LBUTTONDOWN 消息调用的自定义过程} procedure OnLButtonDown(h: HWND); var BrushHandle: HBRUSH; Rect: TRect; begin GetClientRect(h, Rect); ... 阅读全文
posted @ 2008-04-19 11:34 万一 阅读(9801) 评论(1) 推荐(0) 编辑
Windows 编程[9] - WM_CLOSE 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_CLOSE 消息调用的自定义过程} procedure OnClose(h: HWND); begin if IDOK = MessageBox(h, '确认关闭吗?', '提示', MB_OKCANCEL) then DestroyWindow(h); end; ... 阅读全文
posted @ 2008-04-18 22:12 万一 阅读(3344) 评论(0) 推荐(1) 编辑
Windows 编程[8] - WM_PAINT 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_PAINT 消息调用的自定义过程} procedure OnPaint(h: HWND); const str = 'CodeGear Delphi 2007'; var DC: HDC; ps: PAINTSTRUCT; Rect: TRect; begin ... 阅读全文
posted @ 2008-04-18 21:29 万一 阅读(3509) 评论(18) 推荐(0) 编辑
Windows 编程[7] - WM_CREATE 消息
摘要:本次我把生成窗口的过程做了简化, 以凸现新注入的代码; 本例效果图: program Project1; uses Windows, Messages; function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result := 0; ca... 阅读全文
posted @ 2008-04-18 13:59 万一 阅读(3231) 评论(0) 推荐(0) 编辑
WinAPI: wvsprintf 与 wsprintf - Windows 的格式化输出函数
摘要:wvsprintf 函数声明: wvsprintf( Output: PChar; {用于返回的缓冲区} Format: PChar; {格式; 类似与 Format 的格式, 应该是和 C 语言的 printf 的格式相同} arglist: va_list {数组指针} ): Integer; {返回到缓冲区的实际字符串的长度} wvsprintf 函数... 阅读全文
posted @ 2008-04-18 01:20 万一 阅读(8387) 评论(1) 推荐(0) 编辑
关于 array of const
摘要:之前应该参考一下: 关于开放数组参数 //这是在 System 单元定义的一组标识数据类型的常量: vtInteger = 0; vtBoolean = 1; vtChar = 2; vtExtended = 3; vtString = 4; vtPointer = 5; vtPChar = 6; vtObject = 7; vtCl... 阅读全文
posted @ 2008-04-17 22:03 万一 阅读(9609) 评论(10) 推荐(1) 编辑
数组竟然可以这样定义
摘要://这是常规思路: const arr: array[0..1] of Char = ('A','B'); begin ShowMessage(arr); {AB} ShowMessage(IntToStr(Length(arr))); {2} end; //没想到可以这样: const arr: array[Boolean] of Cha... 阅读全文
posted @ 2008-04-17 15:01 万一 阅读(5085) 评论(6) 推荐(0) 编辑
Windows 编程[6] - 学习窗体生成的过程六: 最终的代码!
摘要:program Project1; uses Windows, Messages; {回调函数; 其中要处理的消息很多, 最好用 case 语句} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result := 0; case m... 阅读全文
posted @ 2008-04-16 11:54 万一 阅读(3757) 评论(6) 推荐(0) 编辑
Windows 编程[5] - 学习窗体生成的过程五
摘要:根据前面的介绍, 可以完成一个窗口的建立了: program Project1; uses Windows, Messages; {窗口回调函数, 必须声明在使用它的程序前面} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result... 阅读全文
posted @ 2008-04-15 23:59 万一 阅读(2956) 评论(9) 推荐(0) 编辑
Windows 编程[4] - 学习窗体生成的过程四
摘要:现在需要复习一下系统与窗口的消息机制: 一个程序会有一个或多个线程, 系统有一个线程队列(就是个链表)管理所有这些线程, 并为每个线程建立一个消息队列. 当消息产生时(譬如点击了窗口), 系统会把该消息放到窗口所在的消息队列, 等待窗口处理. 窗口应该时刻待命, 准备从所在的线程队列中取出消息并处理! 从消息队列中取出消息, 一般用 GetMessage 函数; 要随时取出消息, 需要用个循环,... 阅读全文
posted @ 2008-04-15 22:58 万一 阅读(2914) 评论(4) 推荐(1) 编辑
Windows 编程[3] - 学习窗体生成的过程三
摘要:根据前面的理论, 一个窗口生成的框架应该是这个样子: program Project1; uses Windows; {前面提到的函数都来自 Windows 单元} var hWnd : THandle; {声明窗口句柄} MyWndClass: TWndClass; {声明一个窗口类型} begin //在这里设置 MyWndClass 的参数(譬如窗口图标... 阅读全文
posted @ 2008-04-15 17:19 万一 阅读(3384) 评论(0) 推荐(0) 编辑
Windows 编程[2] - 学习窗体生成的过程二
摘要:曾经做过一个最简单的 Windows 程序: 新建一个 Delphi 控制台程序, 贴入以下代码, 即可运行.代码分析: 系统函数 MessageBox 即可生成一个消息窗口; 因为这个函数来自 Windows 单元, 需要 uses Windows;同样的道理, 我们也可以使用 ShellAPI 单元下的 ShellAbout 调用一个关于窗口:但这都是 Windows 固定模式和固定功能的窗口... 阅读全文
posted @ 2008-04-15 14:22 万一 阅读(6501) 评论(2) 推荐(0) 编辑
WinAPI: GetSystemMetrics - 获取系统度量等数值信息
摘要:声明: GetSystemMetrics( nIndex: Integer {参数, 详见下表} ): Integer; 举例 - 获取屏幕分辨率: var cx,cy: Integer; begin {通过 GetSystemMetrics 函数获取屏幕分辨率} cx := GetSystemMetrics(SM_CXSCREEN); cy := GetSystemM... 阅读全文
posted @ 2008-04-11 14:31 万一 阅读(4169) 评论(7) 推荐(0) 编辑
Windows 编程[1] - 窗体生成的过程一
摘要:本例效果图: 新建一个控制台程序, 贴入下面代码即可运行: program Project1; uses Windows, Messages; {等待调用的过程, 用于在窗体上绘制文本} Procedure OnPaint(h: HDC); const s = 'CodeGear Delphi 2007'; begin TextOut(h, 10, 10, PChar(s),... 阅读全文
posted @ 2008-04-08 18:03 万一 阅读(13838) 评论(24) 推荐(0) 编辑
通过 TStringList 给系列数字倒排序 - 回复 lancerning 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/04/07/1134178.html#1141173 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;... 阅读全文
posted @ 2008-04-07 23:52 万一 阅读(5323) 评论(11) 推荐(0) 编辑
PChar 类型的又一些用法
摘要://使用 PChar^ var p: PChar; begin p := PChar('abcd'); ShowMessage(p); {abcd} ShowMessage(p^); {a} p := p + 2; ShowMessage(p^); {c} Dec(p); ShowMessage(p^); {b} ShowMessage(p)... 阅读全文
posted @ 2008-04-06 22:33 万一 阅读(5206) 评论(0) 推荐(0) 编辑
使用剪切板[5]: SetAsHandle、GetAsHandle - 自定义格式
摘要:如果要在剪切板中存放自己的格式, 需要用到 SetAsHandle、GetAsHandle 两个方法. SetAsHandle(用于剪切板的格式ID, 数据的内存句柄); 看这个方法的两个参数都有点麻烦. 自定义剪切板格式要用 RegisterClipboardFormat 函数; 第二个参数是内存句柄而不是内存地址, 能分配内存并返回句柄的函数暂时我只知道 GlobalAlloc、Global... 阅读全文
posted @ 2008-04-04 23:09 万一 阅读(3717) 评论(4) 推荐(0) 编辑
使用剪切板[4]: 如果把子控件一起复制? - 同时回复 ghd2004 的问题
摘要:如果连同子控件一起复制到剪切板, 需要定义一个新类型. 譬如在一个 TPanel 中包含一个 TEdit; 在复制 TPanel 时, 若要连同 TEdit 一起复制, 需要重新从 TPanel 中继承出一个类来(譬如是 TMyPanel), 把 TEdit 包含在新的类中. 运行效果图: TMyPanel 类的单元: unit MyPanel; interface uses Clas... 阅读全文
posted @ 2008-04-04 18:39 万一 阅读(2614) 评论(2) 推荐(0) 编辑
使用剪切板[3]: SetComponent、GetComponent
摘要:本例演示把一个组件(TEdit)放入剪切板, 又取出(放到一个 TPanel 上)的过程. 放入剪切板的方法是个过程: SetComponent(要放入的组件); 取出的方法是个函数: GetComponent(指定属主, 指定父窗口): 函数返回取出的组件的句柄. 取出以前, 最好要判断一下当前剪切板中是不是个组件: HasFormat(CF_COMPONENT); 取出以前还必须要注册... 阅读全文
posted @ 2008-04-04 14:48 万一 阅读(3777) 评论(6) 推荐(0) 编辑
使用剪切板[2]: Assign、HasFormat
摘要:准备工作: 在窗体上放置一个 TPanel; 在 TPanel 上放一个 TImage; 另外需要三个按钮. 本例效果图: 第一版代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, E... 阅读全文
posted @ 2008-04-03 22:04 万一 阅读(4299) 评论(7) 推荐(0) 编辑
使用剪切板[1]: AsText、SetTextBuf、GetTextBuf
摘要:剪切板类 TClipboard 定义在 Clipbrd 单元, 使用前先要 uses Clipbrd; uses Clipbrd; procedure TForm1.Button1Click(Sender: TObject); var clip: TClipboard; begin clip := TClipboard.Create; {建立} clip.AsText := Se... 阅读全文
posted @ 2008-04-03 17:05 万一 阅读(7793) 评论(9) 推荐(0) 编辑
WinAPI: 剪切板函数
摘要:GetOpenClipboardWindow: HWND; {} GetPriorityClipboardFormat( var paFormatPriorityList; {} cFormats: Integer {} ): Integer; {} IsClipboardFormatAvailable( format: UIN... 阅读全文
posted @ 2008-04-03 16:33 万一 阅读(4470) 评论(2) 推荐(0) 编辑
WinAPI: 菜单函数汇总
摘要:function LoadMenu( hInstance: HINST; {} lpMenuName: PChar {} ): HMENU; {} function LoadMenuIndirect( lpMenuTemplate: Pointer {} ): HMENU; {} function GetMenu( hW... 阅读全文
posted @ 2008-04-03 16:32 万一 阅读(4673) 评论(3) 推荐(0) 编辑
WinAPI: 快捷键函数汇总
摘要:function LoadAccelerators( hInstance: HINST; {} lpTableName: PChar {} ): HACCEL; {} function CreateAcceleratorTable( var Accel; {} Count: Integer {} ): HACCEL; {}... 阅读全文
posted @ 2008-04-03 16:32 万一 阅读(2663) 评论(0) 推荐(0) 编辑
WinAPI: EmptyClipboard - 清空剪切板
摘要:声明: EmptyClipboard: BOOL; {} 举例: begin OpenClipboard(0); EmptyClipboard; CloseClipboard; end; 阅读全文
posted @ 2008-04-03 16:31 万一 阅读(3100) 评论(0) 推荐(0) 编辑
辛苦而有价值的一天!
摘要:下载不行了 我觉得到目前为止, 最有价值的一套 Windows 编程中文参考资料还是当属: Microsoft Win 32 程序员参考大全(一)- 窗口管理和图形设备接口 Microsoft Win 32 程序员参考大全(二)- 系统服务、多媒体、系统扩展、应用程序须知 Microsoft Win 32 程序员参考大全(三)- 函数(A—G) Microsoft Win 32 程序员参考大全(... 阅读全文
posted @ 2008-04-02 21:12 万一 阅读(3737) 评论(43) 推荐(1) 编辑
Delphi 的按位运算详解 - 回复来宾"初学汇编"的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/04/02/1055762.html#1134153 http://www.cnblogs.com/del/archive/2008/04/02/1055648.html#1134081 Delphi 的按位运算符共有六个: not and or xor shr shl; 其中的 not and or ... 阅读全文
posted @ 2008-04-02 12:01 万一 阅读(15026) 评论(8) 推荐(1) 编辑
如果提取网页中的变量 - 回复 lancernig 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2008/04/02/1131232.html#1133889 答案: WebBrowser1.OleObject.Document.ParentWindow.变量名; 譬如有这样一个页面(lancernig 举的例子), 如何提取其中的 pvs 呢: 测试页 ... 假定是把页面保存在 '... 阅读全文
posted @ 2008-04-02 10:54 万一 阅读(3086) 评论(6) 推荐(0) 编辑
全局变量 HInstance 到底是在什么时候赋值的?
摘要:在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的. 输入 HInstance; "Ctrl+鼠标" 找到它的声明之处: SysInit 单元的第 29 行(Delphi 2007) - HInstance: LongWord; 看来 Delphi 的隐含单元不只是 System.pas, 还有 SysIn... 阅读全文
posted @ 2008-04-01 14:04 万一 阅读(6382) 评论(2) 推荐(1) 编辑
WinAPI: GetModuleHandle - 获取一个模块(exe 或 dll)的句柄
摘要:定义: GetModuleHandle( lpModuleName: PChar {模块名; 只能是映射到当前进程的模块} ): HMODULE; {返回模块句柄; 0 表示失败} 举例: //获取当前模块的句柄 var s: string; h: Cardinal; begin {先取得模块名} s := Application.ExeName;... 阅读全文
posted @ 2008-04-01 13:48 万一 阅读(24767) 评论(4) 推荐(0) 编辑