摘要: Delphi制作DLL一 Dll的制作一般步骤二 参数传递三 DLL的初始化和退出清理[如果需要初始化和退出清理]四 全局变量的使用五 调用静态载入六 调用动态载入七 在DLL建立一个TForM八 在DLL中建立一个TMDIChildForM九 示例:十 Delphi制作的Dll与其他语言的混合编程中常遇问题:十一 相关资料一 Dll的制作一般分为以下几步:1 在一个DLL工程里写一个过程或函数2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。二 参数传递1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。2 最好有返回值[即使是一个过程 阅读全文
posted @ 2011-12-30 11:14 IT少年 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 用DELPHI创建DLL文件,封装窗体的实现方法实例:即一个程序不再是单一的一个EXE文件了,而是由一个EXE文件加N个DLL文件组成,这样做的原因是方便以后的维护与更新,也是跨平台开发的重要一步。1, 打开DELPHI,新建一个Dll Wizard2, 在新建的Dll里新建一个Form3, 在新建的Form里uses stdctrls4, 在var下面写:Procedure synapp(App:THandle);stdcall;Procedure showform;stdcall;5, 然后在implementation 下面uses math6, 在{$R *.dfm}下面写Proced 阅读全文
posted @ 2011-12-30 10:31 IT少年 阅读(929) 评论(0) 推荐(0) 编辑
摘要: Property是一个很有意思的语法特性,它使得方法具有了字段的调用特征,并赋予字段执行动作的能力。如果你使用过C++ Builder来写基于VCL的程序,我想很多人都会注意到这样一点,比如:edt.Text = "test"; 这个时候edt文本框的内容会随之改变,但是“理论”上Text应该只是改变了Text所在的内存数据而已,为什么会导致窗口更新界面着一些列动作?这就是因为Property这一特性,Property是Borland为C++扩展的语法特性,目的在于使C++ Builder能够方便的使用VCL库,毕竟VCL是使用Object Pascal写的。有些扯远了,言 阅读全文
posted @ 2011-12-26 09:55 IT少年 阅读(9563) 评论(0) 推荐(0) 编辑
摘要: 函数功能:该函数从调用线程的消息队列里取得一个消息并将其放于指定的结构。此函数可取得与指定窗口联系的消息和由PostThreadMesssge寄送的线程消息。此函数接收一定范围的消息值。GetMessage不接收属于其他线程或应用程序的消息。函数原型:BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilteMax参数:lpMsg:指向MSG结构的指针,该结构从线程的消息队列里接收消息信息。hWnd:取得其消息的窗口的句柄。这是一个有特殊含义的值(NULL)。GetMessage为任何属于调用线程的窗口检索消息 阅读全文
posted @ 2011-12-26 08:58 IT少年 阅读(1684) 评论(0) 推荐(0) 编辑
摘要: Win32API消息函数:GetMessagePos函数功能:该函数返回表示屏幕坐标下光标位置的长整数值。此位置表示当上一消息由GetMessage取得时鼠标占用的点。函数原型:DWORD GetMessagePos(VOID)参数:无。返回值:返回值给出光标位置的X,y坐标。X坐标在低位整数,y坐标在高位整数。备注:如前所述,X坐标在返回值的低位整数,y坐标在高位整数(都表示有符号值,因为在多显示器的系统里可取得负值)。如果返回值赋给了一个变量,可用 MAKEPOINT宏从返回值取得POINT结构。也可用GET_X_LPARAM或GET_Y_LPARAM宏来抽取X,y坐标。要得到光标的当前位 阅读全文
posted @ 2011-12-26 08:56 IT少年 阅读(486) 评论(0) 推荐(0) 编辑
摘要: Win32 API消息函数:PostMessage函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);参数hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。NULL:此函数 阅读全文
posted @ 2011-12-26 08:49 IT少年 阅读(3037) 评论(0) 推荐(0) 编辑
摘要: Win32API消息函数:SendMessage函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);参数:hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。 阅读全文
posted @ 2011-12-26 08:49 IT少年 阅读(1198) 评论(1) 推荐(0) 编辑
摘要: TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据。程序首先必须使用SQL命令从后端数据库中取得数据并且形成结果数据集,然后才使用Locate方法查寻数据。 当使用Locate方法查寻数据时,开发人员可以使用任何的字段条件来查寻,而无须理会这个字段是不是索引字段。当然,当开发人员使用索引字段来查寻数据时,Locate会直接使用索引来帮助查寻,因此速度会非常快速。如果开发人员使用非索引字段查寻数据,那么Locate也将使用目前它知道最好的方式来查寻数据。 此外,Locate方法不只能够查寻一个单一 阅读全文
posted @ 2011-12-19 10:47 IT少年 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: MaskEdit是用来建立编辑框的,但它与Edit编辑框可以输入任意字符不同,MaskEdit可以限制用户只能按照既定的输入格式输入。掩码编辑框(MaskEdit)是一种特殊的编辑框。使用它可以设计出许多复杂的输入格式。在选用MaskEdit之后,需要为它设计一个输入格式。方法如下: 首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框。 对话框左上角的Input Mask编辑框用于输入掩码格式。掩码格式可以分为三部分,每个部分之间用分号“;”分开,如“!90:90:90:;1;_ ”。下面解释各.. 阅读全文
posted @ 2011-12-19 10:31 IT少年 阅读(1802) 评论(0) 推荐(0) 编辑
摘要: OnMouseDown很简单,鼠标按下触发的事件,与之对应的是OnMouseUp事件。通常的情况下,它们两个都可以实现用鼠标单击的事件,但是它们之间也是有区别的一般的它们两个是可以互相代替的使用的,但在这里举个小例子,说明它们之间的不同之处,对于初学者可能会有所帮助。 例如,使用OnMouseDown和OnMouseUp都可以去实现用鼠标触发按钮事件,这个大家都很清楚的。鼠标在按钮上面按下,此时触发了OnMouseDown事件,在没有释放之前不会触发OnMouseUp事件。但是应该注意一点,若是在释放鼠标的过程中,鼠标离开了按钮之外的话,就算是释放鼠标也不会触发OnMouseUp事件。有些朋友 阅读全文
posted @ 2011-12-19 09:58 IT少年 阅读(3407) 评论(1) 推荐(0) 编辑