随笔分类 -  Delphi心得

摘要:假设你需要在TForm1的Panel1上显示TForm2,最简单的方法是改写TForm2.TForm2=class(TForm)private ...public constructor Create(AOwner: TComponent); override;end;implementationconstructor TForm2.Create(AOwner: TComponent);beg... 阅读全文
posted @ 2007-07-18 15:30 sonicit 阅读(419) 评论(0) 推荐(0)
摘要:前几天项目的一部份已经交付给客户使用,反馈回的意见还算少,主要问题是不稳定,在不经意的检查中,发现是内存泄漏。内存泄漏对于Delphi来说是致命的,因为Delphi没有一样工具可以像样的检查内存泄漏(除了汇编窗口,有谁能用它来检查内存泄漏我会相当的佩服)。 在网上http://www.cnblogs.com/abchjb/articles/18685.html发现了检查内存泄... 阅读全文
posted @ 2007-07-18 15:10 sonicit 阅读(2966) 评论(0) 推荐(0)
摘要:Function IsEMail(EMail: String): Boolean;var s: String; ETpos: Integer;begin ETpos:= pos('@', EMail); //获取@符号的位置 if ETpos > 1 then begin s:= copy(EMail,ETpos+1,Length(EMail)); ... 阅读全文
posted @ 2007-07-09 20:11 sonicit 阅读(916) 评论(0) 推荐(0)
摘要:事实上,解决这个问题的思路很简单。那就是要找出汉字表中拼音首字母分别为“A”到“Z”的汉字内码范围,这样对于要检索的汉字,只需要检查它的内码位于哪一个首字母的范围内,就可以判断出它的拼音首字母。下面完成一个示范程序,选择“File|New Application”菜单命令,在默认的窗体中添加1个Label组件、1个Bevel组件、1个Edit组件和2个ListBox组件。完成对各个组件的属性设置及... 阅读全文
posted @ 2007-07-09 20:10 sonicit 阅读(1372) 评论(2) 推荐(0)
摘要:1、表格形式如类似于下面的表格,需要用到两个数据源。一个用于外层数据,一个用于内层数据。2、在设计表格时需要注意的是字体和字体的编码。打印中文的话,一定要用中文字体,而编码只能用DEFAULT_CHARSET而不能用GB2312_CHARSET,如果用了GB2312_CHARSET那就会出现乱码。 阅读全文
posted @ 2007-07-02 09:39 sonicit 阅读(2227) 评论(2) 推荐(0)
摘要:今天外面又是暴雨如注啊,不知道会不会发洪水,呵呵。外面倾盆大雨的时候,坐在椅子上的我汗水似倾盆大雨。 昨天刚做完软件更新模块,后来客户需要把现在的程序做成MDI(又是费神的事情)。做就做吧,程序改完,F9。还好没有任何问题(心里正美的),关闭时问题出现了 “.....too many consecutive exceptions...”,我当时差点摔倒,我难道把没有BUG的程... 阅读全文
posted @ 2007-06-28 16:07 sonicit 阅读(4028) 评论(0) 推荐(1)
摘要:DLL方式封装MDI子窗体是一种常用的软件开发技术,它的优点:人员可以负责某一个模块的编写包括(界面+逻辑),可以互不干扰,模块开发完成后,主程序统一调用。程序升级,当程序升级时,不用编译主exe文件,更新某个DLL就可以升级。可以根据客户不同的需求、价钱给他们不同的模块。(奸商都愿意用这招) 用到这个技术,因为小弟没有用过,在网上google了一下,对它有了了解,我用的是基于COM的DLL,下面... 阅读全文
posted @ 2007-06-27 15:52 sonicit 阅读(723) 评论(0) 推荐(0)
摘要:我们知道,在Delphi中,如果一个MDI Form非主窗体的话,我们就不能创建任何MDI Child Form,实在是遗憾,不过还是可以解决的。 Kingron查看了VCL的源代码,发现在创建窗体的时候,系统会检测MainForm是不是nil和MainForm.ClientHandle是不是nil,对于MainForm就是MDI Form的,因为有ClientHandle,所以没有问题,但是对于... 阅读全文
posted @ 2007-06-27 15:49 sonicit 阅读(1133) 评论(2) 推荐(0)
摘要:WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi.pas单元:uses ShellAPI; 1.标准用法 ShellExecute函数原型及参数含义如下: function ShellExecute(... 阅读全文
posted @ 2007-06-26 17:39 sonicit 阅读(3974) 评论(1) 推荐(0)
摘要:通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢? 我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,通过“记... 阅读全文
posted @ 2007-06-17 08:06 sonicit 阅读(591) 评论(0) 推荐(0)
摘要:function SbctoDbc(s:string):string;var nlength,i:integer; str,ctmp,c1,c2:string; { 在windows中,中文和全角字符都占两个字节, 并且使用了ascii chart 2 (codes 128 - 255 )。全角字符的第一个字节总是被置为163, 而第二个字节则是相同半角字符码加上128(不包括空格)。... 阅读全文
posted @ 2007-06-05 17:12 sonicit 阅读(3894) 评论(5) 推荐(0)
摘要:一、Format函数的用法Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要... 阅读全文
posted @ 2007-06-04 09:10 sonicit 阅读(17890) 评论(3) 推荐(1)
摘要:Delphi7 调用VS.NET 2005开发的基于.NET 2.0的WebService时发生了错误。查阅资料 http://www.community.borland.com/article/borcon/files/4132/paper/4132.html 发现原来Delphi7客户端虽然支持WebService的RPC|Encoded 和 Document|Literal编码... 阅读全文
posted @ 2007-06-02 15:43 sonicit 阅读(938) 评论(0) 推荐(0)
摘要:前段时间一直在搞一个项目,常用到ListView,而且常把Record放入ItemData。一开始我就把对ListView的常规操作都写入一个Dll(包括批量的添加数据,保存数据,加载数据),方便于以后的使用。这是恶梦的开始。 这样做不要紧,等项目越做越深入时,越来越多的问题突现。只要对ListView操作不管什么操作,添加、删除,就是点击某行,就会跳出“Invalid poin... 阅读全文
posted @ 2007-05-20 09:51 sonicit 阅读(1928) 评论(0) 推荐(0)