Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题: Screen.Cursors[crHandPoint] := LoadCursor(0, IDC_HAND);放在主窗体 OnCreate 事件里,或放在任意一个单元 initialization 节都可以.同样的方法还可以替换掉其它感觉不爽的默认光标.…
问题:3行代码 PDF.NET是一个开源的数据开发框架,它的特点是简单.轻量.快速,易上手,而且是一个注释完善的国产开发框架,受到不少朋友的欢迎,也在我们公司的项目中多次使用.但是,PDF.NET比起EF来,仍然有很大的劣势,主要就是用起来没有EF简单,这个问题饱受广大朋友的批评,但我很感谢这些朋友,他们的批评才是框架进步的动力,为此,之前我发表了<来一点反射和Emit,让ORM的使用极度简化>  这篇文章,使得不再需要定义实体类,只需要有接口即可访问数据库: 原文的代码: static vo…
今天帮别人解决一个关于 Base64 编解码的问题,竟然发现 Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因. 这个单元提供两套四个公开函数: 对流的编解码:procedure EncodeStream(Input, Output: TStream); // 编码procedure DecodeStream(Input, Output: TStream); // 解码 // 对字符串的编解码:function E…
下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer; 第一个参数是分隔符,可以是多个,例如 [';',',',':'] 可以按分号.逗号.分号来同时分割. 第二个参数是开头被忽略的字符,例如['<','>',' '],被分割出的字符,如果开头…
Pointers are like jumps, leading wildly from one part of the data structure to another. Their introduction into high-level languages has been a step backwards from which we may never recover. — Anthony Hoare 对指针可能有最让人误解和惧怕的数据类型,因此很多程序员喜欢躲避他们. 但是指针很重要…
Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因.  这个单元提供两套四个公开函数:  对流的编解码: procedure EncodeStream(Input, Output: TStream); // 编码 procedure DecodeStream(Input, Output: TStream); // 解码  // 对字符串的编解码: function  EncodeString(const Input:…
Delphi 的 DateTimePicker 组件有一个CalColors属性,可以设置 DropDown 打开的日历节目的风格.但如果不使用 Delphi 自带的 Style,在这里设置属性看不到期望的效果. 而使用了 delphi 自带的style,效果又存在瑕疵——日历面板大小有问题. 如果把自带 style 的 client 项关闭,大小倒是对了,之前设置的MonthBackColor属性在边框上也体现出来了,但是和窗体的风格又不统一了. 网上一搜,Stack Overflow 给出了…
比如,MessageBox在Delphi自带帮助的参数说明中,对其第四个参数的MB_类型说明只有最常见的6种类型,这么多年搞得我天经地义的以为MessageBox就是这么简单.今天看了一位前辈写的老代码,才发现,还有 MB_SETFOREGROUND和MB_SERVICE_NOTIFICATION_NT3X等等参数,比如可以这样调用: Result := MessageBox(0, lpText, lpCaption, uType or MB_SETFOREGROUND or MB_SERVIC…
因为Delphi自带的转换函数遇到其无法识别的字符串就返回空,下面函数可解决该问题. function DecodeUtf8Str(const S: UTF8String): WideString;var  lenSrc, lenDst  : Integer;begin  lenSrc := Length(S);  if (lenSrc=0) then Exit;  lenDst := MultiByteToWideChar(CP_UTF8, 0, Pointer(S), lenSrc, nil…
让DELPHI自带的richedit控件显示图片 unit RichEx; { 2005-03-04 LiChengbin Added: Insert bitmap or gif into RichEdit controls from source file. 2005-01-31 LiChengbin Usage: Insert bitmap into RichEdit controls by IRichEditOle interface and implementation of IData…