上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: 在工程单元加入一下代码:CreateMutex(nil, True, '特殊标识字符');if GetLastError = ERROR_ALREADY_EXISTS thenbegin Exit;end; 阅读全文
posted @ 2013-05-01 16:00 小天1981 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 以下代码相比网上其它某些文件传输代码精练很多,传输的文件大小任意,个人建议:写网络文件传输程序时最好用Indy的控件(因为其默认即阻塞模式,Server端已封装了多线程,没有数据包大小限制),ClientSocket VS ServerSocket传输文件很麻烦,要自定通信协议,并且有个8KB的瓶颈,实现大文件传输比较麻烦,服务端发送:var iFileHandle:integer; iFileLen,cnt:integer; buf:array[0..4096] of byte;begin iFileHandle:=FileOpen('E:\Study\深入Delphi6网络编程.r 阅读全文
posted @ 2013-05-01 15:55 小天1981 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 添加控件XMLDocument。例子XML文件内容:(c:\temp\test.xml)<!--StartFragment--><?xml version="1.0" encoding="gb2312"?><科室名单 备注="测试"><人员 职务="科长" 备注="正局级"> <姓名>张三</姓名> <性别>男</性别> <年龄>34</年龄></人员><人员 阅读全文
posted @ 2013-05-01 15:54 小天1981 阅读(217) 评论(0) 推荐(0) 编辑
摘要: DBGrid的拖放问题:设为dmAutomatic,则点击无法移动记录,设为dmManual则在记录上点击时无法响应MouseDown事件,请问哪位大侠能解决 --------------------------------------------------------------- 这是我在网上找的代码,经测试非常不错: procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift then TDBGrid(Sender).... 阅读全文
posted @ 2013-05-01 15:50 小天1981 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 拖放(DragDrop)是Windows提供的一种快捷的操作方式。作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。 Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我们先介绍控件的拖放支持,而后再给出开发拖放操作的一般步骤和应用实例。 9.1 控件的拖放支持 拖放操作中控件可以分为源控件和目标控件两类。绝大部分控件既可以作为源控件也可以作为目标控件。但也有一部分控件只能支持其中的一种。 9.1.1 拖放属性 拖放... 阅读全文
posted @ 2013-05-01 15:48 小天1981 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 1. 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。很多数据库应用程序都用了BDE,BDE往往给发布带来很大的不便,因而TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。由于TClientDataSet是从TDataSet继承下来的,所以,它支持诸如编辑、搜索、浏览、纠错、过滤等功能。由于 TClientData 阅读全文
posted @ 2013-05-01 15:45 小天1981 阅读(225) 评论(0) 推荐(0) 编辑
摘要: ClientDataSet组件支持很多特性,其中一些与三级结构有关,而且还可以用在其他环境中。该组件说明了一个数据库完全映象在内存中,这使得可以进行动态的操作,如建立一个索引,其他数据集合通常不支持该特性。例如,为了对查询分类,我们通常是重新执行它。为了索引一个局部表格,需要定义索引。只有ADO数据集合有一些与ClientDataSet一样的动态索引功能。索引并不是ClientDataSet提供的全部功能。当我们拥有了索引之后,可以基于它定义组,可能是多级别的分组。对于确定一个记录在组中的位置(头、尾或中间位置),甚至有专门的支持。在组或整个数据表格中,我们可以定义总计;也就是说,可以动态计算 阅读全文
posted @ 2013-05-01 15:43 小天1981 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 1.shift+鼠标左键 先选中任一控件,按键后可选中窗体(选中控件后按esc效果一样)2.shift+f8 调试时弹出cpu窗口。3.shift+f10 等于鼠标右键(windows快捷键)。4.shitf+箭头 选择5.shift +f12 快速查找窗体并打开6.f7 (步进式调试同时追踪进入子过程)7.f8 (步进式调试不进入子过程)8.f9 运行9.f12 切换editor,form10.alt+f4 关闭所有编辑框中打开的源程序文件,但不关闭项目11.alt+鼠标左键 可以块选代码,用来删除对齐的重复代码非常有用12.ctrl+f9 编译13.ctrl+shift+n(n=1,2,3 阅读全文
posted @ 2013-05-01 15:40 小天1981 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 今天研究了一下delphi2010的unicode,发现一大堆的转换问题,建议大家老项目还是别转换到2010版本上,否则出问题都不知道在哪里。新项目可以直接使用delphi2010工作。在delphi2010中定义一个变量str,无论这个变量定义为string 还是 ansistring,pos和ansipos函数都将该变量str当做unicodestring类型处理,大家可要小心了。procedure TForm2.Button1Click(Sender: TObject);varstr: AnsiString;beginstr := '中华人民共和国';ShowMessag 阅读全文
posted @ 2013-05-01 15:38 小天1981 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 在Delphi中,也有与C相似的预编译指令,虽然该类指令只在当前的单个文件有效(也有可能是笔者未全面了解该类指令的真正用法),但是这一类指令对于进行多版本的制作工作(如从标准版中出学习版),确实有着相当不错的用途。一.指令介绍:1. DEFINE指令:格式:{$DEFINE 名称} 说明 :用于定义一个在当前单元有效的符号(Symbol)。定义了 之后可以使用IF DEF和IFNDEF指令来判断该符号是否存在。2. UNDEF指令:格式:{$UNDEF 名称}说明:用于取消一个在当前单元已经定义的符号(Symbol)。该指令和DEFINE配合使用。3. IFDEF指令:格式:{$IFDEF 名 阅读全文
posted @ 2013-05-01 15:37 小天1981 阅读(166) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页