易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi深度探索之自动完成外壳扩展

引用自:http://develop.csai.cn/delphi/NO000001.htm
自动完成简介
  大家一定都非常熟悉IE浏览器的地址输入编辑框,它提供了自动完成的功能。自动完成(Auto Complete)功能简化了编辑框的输入功能,它可以根据已经输入的部分字符串进行预测和匹配。图2.7的例子,演示了自动完成可以依据输入的“pro”,给出Pascal的保留字中与其相匹配的字符串列表"procedure"、"program"、"property"。
  在利用自动完成功能前,必须要知道自动完成并不是任意版本的Windows都支持,自动完成功能实际上是由Internet Explorer 4.0引入并必须有4.71版及以上的Shell32.dll的支持。很多早期的系统,包括很多安装了IE 4的系统并不支持这项特性,所以使用自动完成功能时必须确保要安装的系统支持这项功能,如果不支持就需要安装IE和集成外壳。
  自动完成功能是通过一组COM接口来实现的。这些接口使我们可以连接自动完成到编辑框,添加编辑框可以枚举的字符串列表并配置其显示属性。
  1. 自动完成的用途
  使用自动完成功能可以增强程序的易用性,它可以节省用户反复输入一些常用字符串的时间,并减少输入错误。它还可以用于部分字符匹配的查找系统,可以用它实现对数据库内容的快速查找。另外,它还支持向浏览器历史、最近运行程序和外壳目录输入等功能中添加自定义的完成列表。
  2. 配置自动完成
  需要知道的是在Delphi里并没有提供自动完成功能相关COM接口的pascal声明单元。由于一般这类接口在微软都是以C语言的头文件形式提供接口,Delphi不可能及时提供最新的相应的Pascal包装单元。所以为了使用这项功能,本文中额外提供了一个shlintf单元翻译了相应的头文件的声明。下表总结了Shlintf的内容:
COM对象
接 口
CLSID_AutoComplete
IAutoComplete
CLSID_ACLHistory
IAutoComplete2
CLSID_ACListISF
IACList
CLSID_ACLMRU
IACList2
CLSID_ACLMulti
ICurrentWorkingDirectory
 
IObjMgr
  自动完成功能最基本的一个接口就是IAutoComplete接口,它的声明如下:
type
IAutoComplete = interface(IUnknown)
[SID_IAutoComplete]
function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: PWideChar;
pwszQuickComplete: PWideChar): HResult; stdcall;
function Enable(fEnable: Boolean): HResult; stdcall;
end;
  IautoComplete接口有两个方法:Init和Enable。
  Init方法用来把IAut


相关文档:

Delphi写的验证身份证号有效性函数


function ValidatePID(const APID: string): string;
{内部函数,取身份证号校验位,最后一位,对18位有效}
function GetVerifyBit(sIdentityNum: string): Char;
var
    nNum: Integer;
begin
    Result := #0;
    nNum := StrToInt(sIdentityNum[1]) * 7 +
  ......

在delphi 2010 上安装 RemObjects 6.0.39.777

作为delphi的铁杆,在正式Delphi2010推出后,我当然也要尝尝新鲜,用电驴下来以后安装。呵呵二十多分钟就搞定了,启动也特快,简单使用一下,棒棒!!看来Delphi(太阳神)又回来了,如是我决定抛弃delphi2007,用这个新家伙。我所用的第三方组件主要是RemObjects和reportbuilder,reportbuilder还没有找到安装forD2009 Ful ......

Delphi显示和隐藏窗体

一个很简单的问题,但我凭我学习C++/VC一年多,接触Delphi的时间也不短了,但仍然写不出来。
本来以为,不就是将Form1.Show和Form1.Hide么,但却就是达到不到自己想要的结果
这个问题倒不用作深入研究了,到是让我发现,Delphi也不是信手摘来,什么都是那么容易的,以为自己有点儿VC的底子,就小看了Delphi。
最近一段时 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号