糖炒栗子

cheap to talk,show muscle would be better...

导航

2012年2月29日 #

获得其他程序控件中的信息 WM_GETTEXT消息

摘要: 获得其他程序控件中的信息,尤其跨进程,这个着实让我头疼捯饬了一阵,最后才明白只能通过WM_GETTEXT消息获取文本。SendMessage(h, WM_GETTEXT, 260, Longint(@Caption));(h:要获取信息的控件句柄;Caption: array [0 .. MAX_PATH] of Char;)此消息即发送给系统并获取控件文本信息至Caption里。以下是自己的代码:View Code 1 procedure TSSoUtils.InsertHwnd(h: HWND); 2 var 3 level, Num: integer; 4 Y: integer... 阅读全文

posted @ 2012-02-29 11:19 糖炒栗子 阅读(15226) 评论(0) 推荐(0) 编辑

2011年12月1日 #

有关form的琐碎:free,hide,close

摘要: form.Free - 释放Form占用的所有资源。Free后,Form指针不能再使用,除非对Form重新赋值。 form.Hide - 隐藏Form。可以调用form.Show再一次显示。 form.close - 关闭Form,实际的结果取决于OnCloseQuery和OnClose,如果OnCloseQuery的CanClose为False,不执行任何操作,如果为True,进一步考察OnClose的Action的值: caNone: 不执行任何操作 caHide: 隐藏窗口,同form.Hide caFree: 释放Form占用的资源,同form.Free caMinimi... 阅读全文

posted @ 2011-12-01 12:25 糖炒栗子 阅读(1646) 评论(0) 推荐(0) 编辑

Delphi窗体重绘API:DrawFocusRect,SetTextColor(),GetDc,GetWindowDC,MapWindowPoints,InflateRect

摘要: WinAPI: DrawFocusRect - 绘制焦点矩形用SetTextColor()设置颜色 功能 设置指定设备环境(HDC)的字体颜色原型 WINGDIAPI COLORREF WINAPI SetTextColor (HDC, COLORREF)也可以理解成 DWORD SetTextColor (HDC, DWORD),其中DWORD是关于颜色的参数,常用RGB()获取,如:SetTextColor(HDC,RGB(255,0,0));//声明: DrawFocusRect( hDC: HDC; {设备环境句柄} const lprc: TRect {矩形结构} ): ... 阅读全文

posted @ 2011-12-01 10:49 糖炒栗子 阅读(3597) 评论(0) 推荐(0) 编辑

delphi中的域

摘要: 对于对象来说,一个域就象一个变量。域可以是任何类型,包括类类型。(也就是说,域可以保存对象引用。)域通常是私有的。要定义类的域成员,只需简单地象声明变量那样声明域。所有的域声明必需出现在任何属性或方法声明之前。例如,下面的声明创建了一个叫做TNumber的类,该类中除继承自TObject的方法之外,仅有一个叫做Int的整数域成员。type TNumber = class Int: Integer;end;域的范围是静态的,即编译时对域的引用是固定的。要明白这一含义,考虑如下代码:Type TAncestor = class Value: Integer; end;TDescendant = c 阅读全文

posted @ 2011-12-01 10:19 糖炒栗子 阅读(333) 评论(0) 推荐(0) 编辑

delphi中exit,abort,break,continue 的区别

摘要: 在网上的一片帖子中找到的,挺详细,收藏了。exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行Exit 是跳出当前代码块,也就是当前函数,跳出后是要继续向下执行的(如果有后续代码)。Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = RaiseException(),是一个不出现对话框的异常。所以 Abort 的行为和异常是一样的,其代码执行顺序也是follow异常的流程。例如:t 阅读全文

posted @ 2011-12-01 10:09 糖炒栗子 阅读(354) 评论(0) 推荐(0) 编辑

Delphi:assigned,TTreeView,return/result,listview

摘要: assigned 是用来判断某一指针(pointer)或过程引用是否为nil(空),如果为空则返回假(false)。用法示例(防止窗体被实例化多次):procedure TForm1.Button1Click(Sender: TObject);begin if (Not assigned(form2)) then begin form2:=Tform2.Create(Self); end; form2.show;end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);begin Action:=caFr 阅读全文

posted @ 2011-12-01 10:01 糖炒栗子 阅读(590) 评论(0) 推荐(0) 编辑

2011年11月30日 #

使用innerfuse脚本

摘要: 使用innerfuse脚本语言innerfuse脚本语言(或交互式财务计划系统)是建立从不同的2个部分:–编译器–运行编译器,可以发现在ifpscomp.pas单元,运行时在ifps3.pas单位,不依赖于对方。可以使用编译器和运行时直接使用组件,或它的包装,该tifps3compexec组件可以在ifps3compexec单位和包装的编译器和执行在一个易于使用的类。使用组件的版本ifps3必须把它放在窗体或数据模块。设置或指定脚本属性,调用编译方法和执行方法。任何错误警告或提示发生在编译可以发现在该compilermessages数组属性和运行时错误可以通过阅读execerrortostri 阅读全文

posted @ 2011-11-30 17:36 糖炒栗子 阅读(342) 评论(0) 推荐(0) 编辑

内存映射文件与内存读写实现进程间通信的比较

摘要: 内存映射文件与内存读写都可以实现进程间通信,其两者的差别如下:1、内存写需要手工申请内存以得到内存的起始地址和手工释放内存,而利用内存映射文件则不需要,映射完之后直接即可得到内存的起始地址,但是在用完之后要记得释放内核对象File、Map,Mapview等,否则会造成内存泄露。2、内存读写利用的是windows消息来传递起始地址指针,而内存映射文件利用内核对象的共享来实现进程间通信。3、内存读写方式利用的是找到对方进程后,对其内存进行读写。内存映射方式是创建一个内核对象来实现内存的共享。总之:两者都是以找到一块内存地址相同的区域,返回其基地址后对共享内存进行操作。 阅读全文

posted @ 2011-11-30 17:04 糖炒栗子 阅读(534) 评论(0) 推荐(0) 编辑

与窗体及消息有关的API

摘要: EnumChildWindows:函数功能:枚举一个父窗口的所有子窗口。函数原型:BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam);各个参数如下: HWND hWndParent 父窗口句柄 WNDENUMPROC lpEnumFunc 回调函数的地址 LPARAM lParam 自定义的参数注意:回调函数的返回值将会影响到这个API函数的行为。如果回调函数返回true,则枚举继续直到枚举完成;如果返回false,则将会中止枚举。ClientToScreen:这个函数的功能:该函数将指... 阅读全文

posted @ 2011-11-30 16:57 糖炒栗子 阅读(545) 评论(0) 推荐(0) 编辑

进程间创建共享内存

摘要: 对共享内存的学习整理:创建共享内存分以下几个步骤: 1.定义共享内存的结构体; 2.利用CreateFileMapping函数创建共享内存; 3.定义指向共享内存结构体的指针pShareMem,利用MapViewOfFile函数将刚刚创建的内存映射到定义指针pShareMem。 读写共享内存分以下几个步骤: 1.定义共享内存的结构体; 2.用OpenFileMapping函数打开上面创建的共享内存区,该函数返回共享内存的地址; 3.将共享内存映射为文件指针; 4.定义指向共享内存结构体的指针,将共享内存的内容拷贝到结构体指针里。HANDLE hMap;HANDLE hAddress;int i 阅读全文

posted @ 2011-11-30 13:53 糖炒栗子 阅读(3999) 评论(0) 推荐(0) 编辑