随笔分类 -  DelphiXE2

摘要:1,新建dll客户端模块---------------dll工程文件PlugIns.dll-------------------------------library PlugIns;{ Important note about DLL memory management: ShareMem must be thefirst unit in your library's USES clause AND your project's (selectProject-View Source) USES clause if your DLL exports any procedures 阅读全文
posted @ 2012-02-10 09:07 IT少年 阅读(766) 评论(0) 推荐(0)
摘要:Delphi制作DLL 一 Dll的制作一般步骤二 参数传递三 DLL的初始化和退出清理[如果需要初始化和退出清理]四 全局变量的使用五 调用静态载入六 调用动态载入七 在DLL建立一个Tform八 在DLL中建立一个TMDIChildform九 示例:十 Delphi制作的Dll与其他语言的混合编程中常遇问题:十一 相关资料一 Dll的制作一般分为以下几步:1 在一个DLL工程里写一个过程或函数2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。二 参数传递1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。2 最好有返回值[即使是一个过 阅读全文
posted @ 2012-02-10 09:06 IT少年 阅读(604) 评论(0) 推荐(0)
摘要:开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞代码://自动产生Code如下:ibrary Project2;//这有段废话。uses SysUtils, Classes;{$R *.RES}beginend.2.加个Func进来:代码:library Project2;uses SysUtils, Classes;Function MyMax ( X , Y : integer ) : integer ; stdcall ; begin if X > Y then Result := X else Result := Y. 阅读全文
posted @ 2012-02-09 21:28 IT少年 阅读(357) 评论(0) 推荐(0)
摘要:MessageBox对话框 输入控件的 ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。 1、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0 阅读全文
posted @ 2012-02-01 15:45 IT少年 阅读(368) 评论(0) 推荐(0)
摘要:在过程、函数、事件内部, SHIFT+CTRL+向上的方向键 可跳跃到相应的过程、函数、事件的定义.相反,在过程、函数、事件的定义处,SHIFT+CTRL+向下的方向键 可跳跃到具体过程、函数、事件内部CTRL+ SHIFT + C:编写申明或者补上函数.如:procedure TT.A(AA: string); //函数申明安下:CTRL+ SHIFT + C后,会写上procedure TT.A(AA: string);beginend;SHIFT+CTRL+E 显示 EXPLORERcrtl + shift + n (n=1,2,3,4......)定义书签crtl + n (n=1,2 阅读全文
posted @ 2012-02-01 15:33 IT少年 阅读(643) 评论(0) 推荐(0)
摘要:不是由BORLAND提供的组件叫第三方组件:安装方法:就目前常见的各种形式的组件的安装方法介绍一下。 1 只有一个DCU文件的组件。DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布。一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦Delphi版本升级,此组件就不能再使用了,当然有的作者给出了几种版本的DCU文件,用户根据需要选择使用。这样的组件的安装方法是:在Component菜单中,选择install component,在对话框 "into existing package& 阅读全文
posted @ 2012-01-12 15:25 IT少年 阅读(445) 评论(0) 推荐(0)
摘要:DELPHI IDE中部分操作快捷方式1 代码模板:CTRL+J2 代码整块移动:CTRL+SHIFT+I(右移) CTRL+SHIFT+U(左移)3 选中窗体 : 先选中任一控件,SHIFT+鼠标左键4 将鼠标指向变量名、单元名、类名,再用 CTRL+鼠标左键可找到相应的说明5 在过程、函数、事件内部, SHIFT+CTRL+向上的方向键可跳跃到相应的过程、函数、事件的定义6 相反,在过程、函数、事件的定义处,SHIFT+CTRL+向下的方向键可跳跃到具体过程、函数、事件内部7 CTRL+ SHIFT + C: 编写申明或者补上函数8 SHIFT+CTRL+E 显示 EXPLORER9 Ct 阅读全文
posted @ 2012-01-12 10:15 IT少年 阅读(465) 评论(0) 推荐(0)
摘要: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少年 阅读(427) 评论(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少年 阅读(965) 评论(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少年 阅读(9642) 评论(0) 推荐(0)
摘要:TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据。程序首先必须使用SQL命令从后端数据库中取得数据并且形成结果数据集,然后才使用Locate方法查寻数据。 当使用Locate方法查寻数据时,开发人员可以使用任何的字段条件来查寻,而无须理会这个字段是不是索引字段。当然,当开发人员使用索引字段来查寻数据时,Locate会直接使用索引来帮助查寻,因此速度会非常快速。如果开发人员使用非索引字段查寻数据,那么Locate也将使用目前它知道最好的方式来查寻数据。 此外,Locate方法不只能够查寻一个单一 阅读全文
posted @ 2011-12-19 10:47 IT少年 阅读(1193) 评论(0) 推荐(0)
摘要:MaskEdit是用来建立编辑框的,但它与Edit编辑框可以输入任意字符不同,MaskEdit可以限制用户只能按照既定的输入格式输入。掩码编辑框(MaskEdit)是一种特殊的编辑框。使用它可以设计出许多复杂的输入格式。在选用MaskEdit之后,需要为它设计一个输入格式。方法如下: 首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框。 对话框左上角的Input Mask编辑框用于输入掩码格式。掩码格式可以分为三部分,每个部分之间用分号“;”分开,如“!90:90:90:;1;_ ”。下面解释各.. 阅读全文
posted @ 2011-12-19 10:31 IT少年 阅读(1897) 评论(0) 推荐(0)
摘要:OnMouseDown很简单,鼠标按下触发的事件,与之对应的是OnMouseUp事件。通常的情况下,它们两个都可以实现用鼠标单击的事件,但是它们之间也是有区别的一般的它们两个是可以互相代替的使用的,但在这里举个小例子,说明它们之间的不同之处,对于初学者可能会有所帮助。 例如,使用OnMouseDown和OnMouseUp都可以去实现用鼠标触发按钮事件,这个大家都很清楚的。鼠标在按钮上面按下,此时触发了OnMouseDown事件,在没有释放之前不会触发OnMouseUp事件。但是应该注意一点,若是在释放鼠标的过程中,鼠标离开了按钮之外的话,就算是释放鼠标也不会触发OnMouseUp事件。有些朋友 阅读全文
posted @ 2011-12-19 09:58 IT少年 阅读(3545) 评论(1) 推荐(0)
摘要:HOW是非模式显示窗体 SHOWMODAL是模式显示窗体 前者关闭时窗体并没有释放,需要在FORM的ONCLOSE中添加ACTION:=NIL; 后者就不用 我一般都用后者show 只简单的显示出所调用窗口,showmodal 需要在关闭窗口之后才能进行其它窗口的操作; 同时showmodal 能获取到返回值;两种方法可以让它show 出来1:uses 单元的文件名;在过程中,直接用 窗体名称.show;如果我不出来我是王八!2:uses 单元的文件名;在过程中var 变量:tform2;变量:=tform2.create(self);变量的.show;用完以后记得释放;A窗口show... 阅读全文
posted @ 2011-12-19 09:45 IT少年 阅读(889) 评论(0) 推荐(0)
摘要:16、SaveDialog1确认文件存不存在的办法?答:procedureTForm1.SaveDialog1CanClose(Sender:TObject;varCanClose:Boolean);beginifFileExists(SaveDialog1.FileName)then//如果文件已经存在ifMessageDlg('文件已经存在,保存吗?',mtConfirmation,[mbYes,mbNo],0)<>mrYesthenButton2.Click//如果选择了覆盖,则退出,否则,重新让用户选择文件end;====================== 阅读全文
posted @ 2011-11-25 15:01 IT少年 阅读(595) 评论(0) 推荐(0)
摘要:删除dbgrid中选定数据的方法:beginadotable1.Delete;adotable1.first;若要追加和修改信息:adotable1.Append;adotable1.post;------------------------------------------------将数据写入库:procedureTclassmanageform.SaveToTable;beginClassmanageForm.adotable1.edit;ClassmanageForm.adotable1.FieldByName('班级名').asstring:=edit1.text; 阅读全文
posted @ 2011-11-25 14:59 IT少年 阅读(513) 评论(0) 推荐(0)
摘要:在Delphi中的下拉框怎么连数据库阿ADOConnection1,AdoQuery1,button1,combobox1 各一个。比如说点一下button1,将数据库内容填入到combobox1中1、AdoConnection1的ConnectionString设置一下2、AdoQuery1的Connection属性,选择AdoConnection13、procedure TForm1.Button1Click(Sender: TObject);beginwith AdoQuery1 do begin close; sql.clear; sql.add('select distinc 阅读全文
posted @ 2011-11-25 14:55 IT少年 阅读(3679) 评论(0) 推荐(0)
摘要:procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add('select * from YourTABLE where 查询条件'); ADOQuery.Open; //插入记录procedure TForm1.Button2Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Text:='insert into 阅读全文
posted @ 2011-11-25 08:57 IT少年 阅读(2545) 评论(1) 推荐(0)