比如,MessageBox在Delphi自带帮助的参数说明中,对其第四个参数的MB_类型说明只有最常见的6种类型,这么多年搞得我天经地义的以为MessageBox就是这么简单.今天看了一位前辈写的老代码,才发现,还有 MB_SETFOREGROUND和MB_SERVICE_NOTIFICATION_NT3X等等参数,比如可以这样调用: Result := MessageBox(0, lpText, lpCaption, uType or MB_SETFOREGROUND or MB_SERVIC…
Delphi 的 DateTimePicker 组件有一个CalColors属性,可以设置 DropDown 打开的日历节目的风格.但如果不使用 Delphi 自带的 Style,在这里设置属性看不到期望的效果. 而使用了 delphi 自带的style,效果又存在瑕疵——日历面板大小有问题. 如果把自带 style 的 client 项关闭,大小倒是对了,之前设置的MonthBackColor属性在边框上也体现出来了,但是和窗体的风格又不统一了. 网上一搜,Stack Overflow 给出了…
开发快很重要——如果只看语法或者产品结果C++似乎很强大,但是参与这个C++的开发过程,就会感觉到这种痛苦,太慢了,太麻烦了,虽然在反复调试和优化之后,最后产品的结果可能还不错. Delphi的最大特点是开发快.今天认识到这点非常重要.不仅仅是时间/金钱那么简单,而是无休止的做一个没法结束的项目,想死的心都有. 如果只是比较开发的软件,有很多优秀的软件都是C++开发的,界面很漂亮.功能很强大,看不出有什么问题.但是如果真正长时间参与用C++开发某个项目,想死的心都有,开发太慢了...(这里面虽然…
不看怎么存,只看怎么读 e.g. int a = 010; //8以8进制存 int b = 8;//8以10进制存 printf("%d %d\n",a,b); 以十进制取 a和b打印的是8 printf("%o %o\n",a,b); 以8进制取 a和b打印的是10 char 在C语言中仍然是整形占1字节. 'A'是4字节, char _a = 'A' 如何把4字节赋值给1字节呢? 要截断.高位存不下,舍弃.0000 0000 0000 0000 0001 00…
Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题: Screen.Cursors[crHandPoint] := LoadCursor(0, IDC_HAND);放在主窗体 OnCreate 事件里,或放在任意一个单元 initialization 节都可以.同样的方法还可以替换掉其它感觉不爽的默认光标.…
今天帮别人解决一个关于 Base64 编解码的问题,竟然发现 Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因. 这个单元提供两套四个公开函数: 对流的编解码:procedure EncodeStream(Input, Output: TStream); // 编码procedure DecodeStream(Input, Output: TStream); // 解码 // 对字符串的编解码:function E…
因为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…
delphi自带的SHA1算法 uses IdHashSHA, IdGlobal; function SHA1(Input: String): String; begin with TIdHashSHA1.Create do try Result := LowerCase(HashBytesAsHex(TidBytes(Bytesof(Input)))); finally Free; end; end;…
下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer; 第一个参数是分隔符,可以是多个,例如 [';',',',':'] 可以按分号.逗号.分号来同时分割. 第二个参数是开头被忽略的字符,例如['<','>',' '],被分割出的字符,如果开头…