delphi
Janelare
码农
展开
-
delphi编辑器断点无效
1、delphi编辑器有自动优化功能,那些在编译运行过程中会被优化的行是下不了断点的。2、若是有效行,下断点无效应检查是否有无效字符,如回车换行等,人眼看起来是空行,但编译器识别不了导致行错位等。可用Cnpack的清除空行试试。从其他地方拷贝过来的代码最容易出现这种情况,可仔细检查这部分代码是否有无效字符。原创 2015-12-22 08:57:53 · 2591 阅读 · 0 评论 -
汉字字符解码
如这种十六进制表示的汉子需要转换成汉字 \u7535\u4fe1解码函数:function WideDecode( srctext:string):string;var i,p:integer; gbc,html, ttxt:string;begin html :=srctext; p:=pos('\u',html); while原创 2016-09-12 15:39:51 · 2259 阅读 · 0 评论 -
进程的内存管理
一、在操作系统中,系统会给每个进程分配虚拟地址,虚拟地址的大小与处理器的位数有关,如32位处理器进程可分配4GB的虚拟内存供程序正常运行。这4GB的虚拟内存,存储单元从地址0开始进行排序,此地址为虚拟地址。此虚拟地址可分为:1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。线程也有自己维护的栈。2、堆区(heap) :原创 2017-03-24 19:00:51 · 1343 阅读 · 0 评论 -
FindCmdLineSwitch
转自://http://bbs.csdn.net/topics/391070266一、三个形式(变体)1、function FindCmdLineSwitch(const Switch: string; const Chars: TSysCharSet; IgnoreCase: Boolean): Boolean; overload; $[SysUtils.pas2、functio转载 2017-05-12 10:32:24 · 619 阅读 · 0 评论 -
在XE7下引用ToolsApi后编译不通过,显示缺少DockForm, DesignIntf
在XE7下引用ToolsApi后编译不通过,显示缺少DockForm, DesignIntf。在Library path中添加\Program Files (x86)\Embarcadero\RAD Studio\15.0\lib\win32\release 即可,XE系列的都可以这样处理原创 2017-05-12 16:46:20 · 1023 阅读 · 0 评论 -
Xe 下编码注意点
一、Indy编码IndyTextEncoding_OSDefault 与 IndyTextEncodint_Default的区别:IndyTextEncodint_Default := encASCII.IndyTextEncoding_OSDefault windows环境下采用的ANSI编码二、XE7下的 TIdhttp 一般情况下是可以自原创 2016-09-07 08:27:23 · 1506 阅读 · 0 评论 -
delphi 日期格式报错的问题
解决方法,在程序启动时相应位置加入如下代码即可: with FormatSettings do begin ShortDateFormat := 'yyyy-mm-dd'; LongDateFormat := 'yyyy-mm-dd'; ShortTimeFormat := 'hh:nn:ss'; LongTimeFormat := 'hh:nn:原创 2017-05-18 16:26:55 · 931 阅读 · 0 评论 -
XE7下SSL运行环境配置
目前我用的是Embarcode XE7,在访问https网站时用到的两个dll libeay32.dll 和 ssleay32.dll. 在D7的运行环境中是没有这两个文件的,需要将这两个文件拷贝到程序运行环境中,在XE7中已经自带这两个文件,C:\Program Files (x86)\Embarcadero\Studio\15.0\bin\subversion。并且与D7环境下的这两个文件不用原创 2016-07-28 17:17:19 · 535 阅读 · 0 评论 -
应用程序正在发送一个输入同步呼叫。。。
转至元数据结尾转至元数据起始今天遇到了一个高大上的问题,如下图。第一次遇见,当时就懵了,我又干了啥!!!背景:在线程中处理数据,处理完成后通过sendmessage 通知主线程,在消息处理函数中将数据保存到excel表中。现象:在消息处理函数中,一旦操作 excel表便报上诉错误个人猜想原因:send原创 2017-12-14 16:18:23 · 2173 阅读 · 0 评论 -
修改webbrower中浏览器版本
delphi或c#的原生webbrowser控件 默认浏览器的版本很低,现在很多网站已不支持,要么界面显示有问题,要么干脆点不动。 以下方法用于修改webbrower中浏览器的方法 1、cmd regedit 启动注册表中2、进入以下路径 64bit: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Nod原创 2017-12-27 17:54:00 · 2300 阅读 · 0 评论 -
webbrower visible = false 的后果
这个问题其实老早就遇到过,今天又碰到了,没反应过来,还花了半个小时才发现原因。问题背景:在本机测试ok了,将测试按钮所在的panel 设置visible:= false, 然后部署到服务器上 panel上有个webbrowse 用于执行js代码的问题:在服务上运行时会报异常我又干了啥!在本机测试运行好好的,怎原创 2017-12-27 17:43:17 · 352 阅读 · 0 评论 -
如何判断 变体variant/OleVariant 是否为空
value : OleVariant;value := wbCharge.OleObject.document.all.item('spwd',0); 如何判断 value 是否有值呢?如上代码,如果 ole document 对象中没有 spwd 这个对象,那么value 的值是什么?nil? or null? or ' '?原创 2018-01-03 16:22:41 · 1904 阅读 · 0 评论 -
如何判断 变体variant/OleVariant 是否为空
value : OleVariant;value := wbCharge.OleObject.document.all.item('spwd',0); 如何判断 value 是否有值呢?如上代码,如果 ole document 对象中没有 spwd 这个对象,那么value 的值是什么?nil? or null? or ' '?原创 2018-01-03 17:00:39 · 3321 阅读 · 0 评论 -
如何判断变量的类型
在delphi 中如何判断一个variant型变量的类型引用系统单元 system.Variants.pas此单元中已有封装好的一些常见变量的判断函数:VarIsStr;VarIsNumericVarIsFloatVarIsOrdinal原创 2016-10-01 10:30:16 · 1970 阅读 · 0 评论 -
时间戳与日期互转
1、日期转换成时间戳function Gettimestamp: string; begin Result := inttostr(DateTimeToUnix(IncHour(Now,-8))); // 本地时间减8小时end;2、时间戳转换成日期function UnixDateToDateTime(const USec: Longin原创 2016-09-08 08:40:59 · 3669 阅读 · 0 评论 -
webbrower.Navigate()加载失败的一种情况
我们扒网站登录的时候,经常利用Webbrower加载其网站的Js,以获取非明文的密码的加密方法。通常这个webbrower不需要显示在界面上。在Xe7环境下(delphi7自行测试),若把webbrower放在容器控件中,如TPane,TGroupbox ,将容器控件的visible设置为False,webbrower.Navigate()将不会生效,但不会报错。此后再调用js加密原创 2016-09-23 10:11:14 · 1032 阅读 · 0 评论 -
关于socket error 10054
前段时间我的一个小程序在日夜兼程的运行的时候,发现运行几天后就会出现socket error 10054,然后那个报错的URL就一直报socket error 10054。上网查了的各种都是说对方服务器reset了,refuse了,因为connection reset by peer,我还很郁闷,不知如何才可以人为重现问题,怎么修改代码。后来手贱,在程序运行时把网络给断了,这个10054又赫赫原创 2016-01-28 09:04:49 · 16668 阅读 · 0 评论 -
I/O error 32/103
最近做的一个项目需要不断的对Text文件进行写访问,最终操作文件的函数只有一个,且在主线程,线程中对此文件的操作采用同步到主线程的方式进行。看似天衣无缝的完美,在运行过程中还是出现操作文件异常的错误。 问题原因如下: 在主线程中有个TIdHttpserver控件,通过OncommandGet这个事件获取客户端信息,并将信息保存到文件中。当客户端发送消息频繁时原创 2016-02-18 12:53:40 · 5937 阅读 · 0 评论 -
设置程序需要的时间格式
Application.UpdateFormatSettings := False;LongDateFormat:= 'yyyy-MM-dd';ShortDateFormat:= 'yyyy-MM-dd';LongTimeFormat:= 'hh:mm:ss';ShortTimeFormat:= 'hh:mm:ss';DateSeparator:= '-';TimeSepa原创 2016-07-29 15:20:58 · 1250 阅读 · 0 评论 -
RtcHttpServer 服务端应用
TRtcHttpServer 与 TRtcDataProvider RtcHttpServer作为服务端进行端口监听,RtcDataProvider 设置 server 为响应的RtcHttpServer,来处理接收到的数据procedure TForm1.RtcDPCheckRequest(Sender: TRtcConnection);begin (Sende原创 2016-07-30 15:20:29 · 2028 阅读 · 0 评论 -
jpeg error #42
try try Stream := TMemoryStream.Create; Jpeg := TJPEGImage.Create; idc.Get('http://xxxxx/RandomImgGenServlet',Stream); Jpeg.LoadFromStream(Stream); F_query.原创 2016-08-16 15:46:44 · 4896 阅读 · 1 评论 -
转义
No. 文字表記10進表記16進表記文字Comment001""""""quotation mark = APL quote002&&&"&"原创 2016-07-21 18:07:16 · 405 阅读 · 0 评论 -
Socket Error # 10054
若出现 Socket Error # 10054 Connection reset by peer.检查是否把https 写成了 http。若是网页抓包,有些抓包工具会把https的url显示为http原创 2016-07-21 18:11:50 · 1734 阅读 · 0 评论 -
webbrowse 自动关闭弹出对话框
关于 禁止弹出对话框,一下是在CSDN上看到的一种方式。这是弹出后自动关闭的方式,可参考 http://bbs.csdn.net/topics/210025478。另一种情况,不允许弹出对话框,那这个方式就没用了,例如需要长期保持登录状态的网站,在弹出对话框后会自动退出登录,那么久需要禁止弹出,而不是弹出后再自动关闭,此种方式则不可用。原创 2016-07-22 09:46:53 · 1214 阅读 · 0 评论 -
TFDQuery 报错class is missing
尝试使用FireDAC来处理sqlite数据库,在使用TFDQuery 报错如下根据错误提示将 FDGUIxWaitCursor引入项目中,或者 uses FireDAC.VCLUI.Wait 则问题解决。原创 2016-08-03 11:32:43 · 654 阅读 · 0 评论 -
文件权限定义 S_IRUSR S_IWUSR S_IRGRP S_IWGRP S_IROTH S_IWOTH
文件权限定义 FileAccessRights := S_IRUSR or S_IWUSR or S_IRGRP or S_IWGRP or S_IROTH or S_IWOTHS_IRUSR:用户读权限S_IWUSR:用户写权限S_IRGRP:用户组读权限S_IWGRP:用户组写权限S_IROTH:其他组都权限S_IWOTH:其他组写权限原创 2016-08-18 18:00:12 · 26662 阅读 · 0 评论 -
SSL.EOF was observed that violates the protocol
Error connecting with SSL.EOF was observed that violates the protocol出现这个错误一般是SSL方法的版本号设置不正确可将每个版本号都尝试一下,如下SSL.SSLOptions.Method:= sslvTLSv1;SSL.SSLOptions.Method:= sslvTLSv2;SSL.SSLOpti原创 2016-09-10 09:17:45 · 3729 阅读 · 0 评论 -
Copy函数处理中文注意点,防止乱码
Copy函数第二个和第三个参数分别是 copy的起始字符位置和copy的总字符数,注意单位是字符不是字节。如果在delphi7以下的版本中一个字符占一个字节,那么在截取汉字的时候,会常常遇到乱码,最好将第一个参数的字符串定义为widestring。在unicode编码的dephi版本中一个字符占两个字节,这种截取乱码的情况就不会存在了。原创 2016-08-15 09:58:39 · 2391 阅读 · 0 评论 -
http 415 unsupported media type的一种解决办法
遇到几次使用Idhttp 进行接口请求的时候报错 http 415 unsupported media type 的错误。最后的解决办法几乎都是一样的。设置Idhttp.ContentType 的类型。如 接口要求使用Post方式Json格式的串则设置: Idhttp.ContentType = 'application/json'.原创 2016-09-19 15:28:02 · 90891 阅读 · 3 评论 -
E2158 System.Variants unit out of date or corrupted
今天遇到的一个问题。编译的时候报错如下:[dcc64 Fatal Error] System.Variants.pas(1242): E2158 System.Variants unit out of date or corrupted: missing '@VarCast' 解决办法:检查引用的路径中,去掉类似的路径\Embarcadero\RAD原创 2018-01-12 18:27:10 · 819 阅读 · 0 评论