随笔分类 - Delphi常见问题
摘要:大家好,我是DH,技术交流. 最近我再写程序中需要用到接口,在使用中发现几个问题,这里拿出来说说,希望和大家交流,也希望得到大家的建议. 第一个非常严重的问题就是 查询一个类或者一个接口是否实现了某一个接口. 在delphi里面的方法有个Supports,但这些所有的方法最终都是调用的TObject.GetInterface(). 1: function GetInterface(const II...
阅读全文
摘要:XE(2009及以后) 里的 string 是 UnicodeString,采用的是 winnt 系列的系统内核字符集 utf-16(或称 ucs2)。和 utf-16 le 一样,utf-8 也是一种针对 unicode 字符集的编码,两者表达的范围是相同的。两者的差别主要就在于编码方式,前者基本上可以当作是定长的,而后者的长度是不定的:utf-16 中,一个字符至少两占2字节,还有一些非常偏的...
阅读全文
摘要:技术交流,DH讲解.这个是在CSDN上面看见的问题.我说说自己的想法.procedure TForm1.btn1Click(Sender: TObject);var Str:String;begin Str:='abc' ; Str:=str+'d'; str:=copy(Str,1,3); str:=UpperCase(str);end;问题1答案:2010下Unit4.pas.29: be...
阅读全文
摘要:技术交流,DH讲解. 这个错误主要出现在结构体的变体部分.当结构体变体部分里面包含一个不定长的数据时,编译器就会报出错误来.我们来看下: type Data = record case kind:Char of 'A': (str : String); end;我们知道变体结构体会在编译的时候确定这个结构体的大小.但是这样它就确定不了了.那么要怎么修改呢?1 要么有不定长数据的时候不要放在变体部...
阅读全文
摘要:技术交流,DH讲解. 最近写的程序里面想加入一个Log的功能,为了方便以后使用,所以就打算写一个控件.结果遇到了一个问题,这里和大家分享. Procedure DoSetFile(ATxt: TextFile; Const Filename: String);BeginAssignFile(ATxt, Filename);If FileExists(Filename) ThenAppend(ATx...
阅读全文
摘要:技术交流,DH讲解 这个错误其实很低级的,不过很容易犯,尤其是我们在Copy别人代码的时候.这个错误是因为单元的第一句话 Unit XXXX 和你保存的文件名 XXXX.pas 不一致,这里大小写都必须一样. 是的,就这样简单!
阅读全文
浙公网安备 33010602011771号