随笔分类 -  Delphi学习备忘

记录一些优秀的代码
ListView的Columns自适应内部文字
摘要:我是个完美主义者,既不想设置太宽,浪费界面。也不想太窄,显示不下SubItems的文字。在网上找了很多相关的文章,都千篇一律的 AutoSize,其实并没有效果。后来在一篇外文网站看到完美解决方法将Columns的宽度设为 -1即可例如TntListView1.Columns[0].Width := -1;这样宽度就会自适应SubItems里最宽的字符长度了如果TntListView1.Columns[0].Width := -2;则无论SubItems的文字多长,Columns的宽度都等于Header的文字宽度图例1、初始状态2、插入一个Caption,此时宽度自适应为test宽度3、插入一 阅读全文

posted @ 2011-09-16 17:31 Lojon 阅读(512) 评论(0) 推荐(1)

Delphi解压缩Gzip,使用ZlibEx[转]
摘要:之前碰到用wininet下载下来的网页的源码为乱码的现象,刚开始以为是编码所致,但尝试各种解码方法之后发现,原来不是编码的问题。而是代码经过压缩了。在HTTP请求头里加上“accept-encoding: gzip, deflat”,可返回压缩之后的代码。如果不加,返回的就是未经过处理的代码。但是,有些网站,不加“accept-encoding: gzip, deflat”HTTP头,还是返回经过压缩的代码。这就需要解压了。解压其实很简单,ZLibEx里的一个函数就搞定了。1procedureDecompressGZip(AInStream,AOutStream:TStream);2var3p 阅读全文

posted @ 2011-09-05 14:48 Lojon 阅读(5910) 评论(0) 推荐(0)

[转]理解I/O Completion Port(完成端口)
摘要:欢迎阅读此篇IOCP教程。我将先给出IOCP的定义然后给出它的实现方法,最后剖析一个Echo程序来为您拨开IOCP的谜云,除去你心中对IOCP的烦恼。OK,但我不能保证你明白IOCP的一切,但我会尽我最大的努力。以下是我会在这篇文章中提到的相关技术: I/O端口 同步/异步 堵塞/非堵塞 服务端/客户端 多线程程序设计 Winsock API 2.0 在这之前,我曾经开发过一个项目,其中一块需要网络支持,当时还考虑到了代码的可移植性,只要使用select,connect,accept,listen,send还有recv,再加上几个#ifdef的封装以用来处理Winsock和BSD套接字[soc 阅读全文

posted @ 2011-08-08 15:16 Lojon 阅读(218) 评论(0) 推荐(0)

ServiceApplication With Visiable Form
摘要:window station 和desktop。它们主要是用于服务程序,一般的应用程序不必使用它们。它们可以用来对服务进行保护。运行在不同的window station 或不同的desktop下的应用程序,不能互相发送消息、挂钩、使用同一个clipboard等等。主要是出于安全的目的。 服务程序一般使用的是LocalSystem帐户,拥有自己的window station,和Default桌面,这个window station是不能于用户交互的,也就是说,你不能在上面显示窗口,它也不接受用户的鼠标、键盘等输入。 当使用用户帐户登录以后,看到的桌面,是WinSta0(window station 阅读全文

posted @ 2011-07-29 11:48 Lojon 阅读(419) 评论(0) 推荐(0)

解决Delphi程序在非中文系统下乱码
摘要:在工程文件头加入 Windows引用在begin后加入SetThreadLocale( DWORD(Word(SORT_DEFAULT) shl 16) or DWORD(Word(SUBLANG_CHINESE_SIMPLIFIED) shl 10) or DWORD(Word(LANG_CHINESE)) );原理:设置程序的所在区域方法来自互联网,备忘~ 阅读全文

posted @ 2010-11-23 22:43 Lojon 阅读(402) 评论(0) 推荐(0)

PerlRegEx正则编译不带pcrelib.dll的方法
摘要:tperlregex 是比较不错的正则表达式控件,代码规范而性能一般,说明没有进行优化处理,作为免费控件还是不错的。tperlregex 可以有两种方式在 delphi7 中使用:1、作为控件安装到ide 中,这种方式只能使用pcrelib.dll 动态库,且在xp 系统中必须有pcrelib.dll 库的路径;2、不用安装控件的方式,在单元中直接调用perlregex.pas 文件。这种方式即可... 阅读全文

posted @ 2010-08-19 14:28 Lojon 阅读(1055) 评论(2) 推荐(1)

webbrowser到IdHTTP重写底层核心备忘
摘要:经过一个通宵,我的天,IdHTTPpost包时行时不行的。不知道怎么回事早上7点多,实在热得不行,冲了个凉。突然闪过一丝灵感,cookie的格式!比较了webbrowser发包和IdHTTP发包后,把webbrowser的cookie原封不动拷贝到IdHTTP的包,其余信息不变。返回正常可是两个cookie是一模一样的,连顺序都一样了。无解——发现单个cookie时相安无事,只要多cookie好像都不行。突然脑子一蒙,把IdHTTP的cookie的格式重新排了一下Cookie:cookieName=cookieValue;cookieName=cookieValue改成Cookie:cooki 阅读全文

posted @ 2010-07-04 16:31 Lojon 阅读(1029) 评论(0) 推荐(1)

DecodeUtf8Str解决系统自带UTF8解码缺陷
摘要:[代码]因为Delphi自带的转换函数遇到其无法识别的字符串就返回空,以上函数可解决该问题。 阅读全文

posted @ 2010-05-03 17:09 Lojon 阅读(795) 评论(0) 推荐(1)

导航