一个能接受外部拖拽的控件(文字或文件)

摘要: 恩....也是这2天写的一个小东西的需求, 可以拖拽外部文本文件, 或者选择的一段文本到Memo里显示查了一下资料, 主要从2个方面实现: 1.拖拽文件实现WM_DROPFILES就可以了 2.拖拽文本需要实现IDropTarget接口针对这个功能, 重新封装了一个Memo出来: TDropM... 阅读全文
posted @ 2014-08-21 11:06 黑暗煎饼果子 阅读(825) 评论(0) 推荐(0) 编辑

关于Action快捷键和小键盘的问题

摘要: 在使用全尺寸键盘的时候 键盘右边都有一排小键盘但是这个小键盘的数字键值和普通键盘的数字键值是不一样的在ANSI码里 标准数字键值是$30..$39, 而小键盘的键值是$60..$69这样问题就来了 , 我们在属性编辑器里设置Action的ShortCut的时候, 使用的都是文字表示, 而VCL架构里... 阅读全文
posted @ 2014-08-14 10:30 黑暗煎饼果子 阅读(969) 评论(0) 推荐(0) 编辑

SevenZip.pas BUG修改版 - 20160613

摘要: 原始版本: Henri Gourvest <hgourvest@gmail.com> 1.2版本 BUG修改: 1.对于文件名中带有空格的文件, 无法压缩, 原因是1488行, 压缩调用的是TStringList.Delimiter 来拆分文件字符串, 而空格是默认分行符, 导致文件名错误 2.解压 阅读全文
posted @ 2014-07-29 18:07 黑暗煎饼果子 阅读(3042) 评论(11) 推荐(0) 编辑

关于Currency类型和 TCurrencyFiled的悲剧

摘要: 这2天程序出问题, 用户结算金额经常莫名其妙的多出了小数点后几位, 不用思考 肯定是因为浮点精度不准确的问题查了一下, 程序中的数据类型使用的是Currency, 按照数据类型的描述, 这个金额类型应该是以实数形式存储的, 完全不会出现精度不准确的问题, 那为什么现实中还是会有莫名其妙的小数出现呢继... 阅读全文
posted @ 2014-07-09 17:21 黑暗煎饼果子 阅读(1060) 评论(0) 推荐(0) 编辑

一个关于Delphi XML处理单元的BUG

摘要: 使用delphi的XML处理单元 XMLDoc XMLIntf在获取XML文本内容的时候, 高版本的Delphi会丢失编码描述....在D7上却是正常的, 下面是测试源码:procedure TForm1.Button1Click(Sender: TObject);var nXMLDoc: IXM... 阅读全文
posted @ 2014-07-07 10:30 黑暗煎饼果子 阅读(600) 评论(2) 推荐(0) 编辑

弹出一个非阻塞对话框

摘要: 今天有个小需求, 程序要求执行一个检测操作, 如果检测失败的话则弹出信息并且关闭程序由于检测代码是封装到一个独立进程里的, 所以直接使用TerminateProcess(GetCurrentProcess, 0);来关闭当前进程可是在测试时却发现, 原本使用MessageBox来弹出消息却会阻塞结束... 阅读全文
posted @ 2014-06-19 17:07 黑暗煎饼果子 阅读(3269) 评论(2) 推荐(0) 编辑

更新Delphi中SVN客户端版本的方法

摘要: Delphi从XE以后集成里SVN客户端, 安装完Delphi以后, 在bin\subversion下, 存放的就是SVN客户端文件, 可惜版本有点低(好像是1.7的)如果想更新成高版本的客户端文件按下面的方法:1.到collab的网站SVN下载页面:http://www.collab.net/do... 阅读全文
posted @ 2014-05-16 14:07 黑暗煎饼果子 阅读(868) 评论(0) 推荐(0) 编辑

程序只允许运行一个+重复运行程序提前

摘要: 其实是很简单的代码....系统的发一下 首先工程启动部分, 要检测是否重复运行: uses Forms, Windows, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {DM: TDataModule}; {$R *.res} var nMu 阅读全文
posted @ 2014-05-12 10:23 黑暗煎饼果子 阅读(321) 评论(0) 推荐(0) 编辑

一个比较方便的关闭进程函数

摘要: 原创哦...如果有更好的功能或者BUG修订请通知我, 谢谢 阅读全文
posted @ 2014-05-06 17:31 黑暗煎饼果子 阅读(705) 评论(0) 推荐(0) 编辑

一大波技巧性代码...

摘要: 禁止程序切换: 得到窗口移动事件: 限制鼠标移动范围: 类似MSN那样, 显示/隐藏标题栏: 修改文件时间属性(创建/访问/修改): 选择文件夹: 读取外部拖拽进来的文件列表: 读取文件属性信息: 创建快捷方式: 阅读全文
posted @ 2014-04-18 09:19 黑暗煎饼果子 阅读(877) 评论(0) 推荐(0) 编辑

DBXJSON和ADO的效率真的好低....

摘要: 项目需要写了一个JSON和DataSet互转的单元.....支持了Delphi自带的几种DataSet, 结果发现DBXJSON和ADO的效率真的是好低啊........-_-.... 开发环境是XE5, 实测ADODataSet比其他三种创建数据集的速度慢了几乎3倍(200毫秒 对比 600毫秒) 阅读全文
posted @ 2014-04-16 10:31 黑暗煎饼果子 阅读(1752) 评论(0) 推荐(0) 编辑

话说,程序员都是晚上才有灵感, 哪怕是做梦中

摘要: 昨天晚上做梦, 居然把想了三天的一个问题用很巧妙的方式解决了...-_- 阅读全文
posted @ 2014-03-24 08:24 黑暗煎饼果子 阅读(433) 评论(0) 推荐(0) 编辑

当泛型遇上结构体...

摘要: 一般使用泛型都是放类啊, 基础类型什么的, 所以使用上和非泛型基本没什么区别, 不过昨天有人在群里问的问题到是暴露了一个特例: TRC = record Str: string; Int: Integer; end;...var nRC: TRC; nList: TList; i: Integer;begin nList := TList.Create; for i := 0 to 9 do begin with nRC do begin Str := IntToStr(i); Int := i; end; nList.A... 阅读全文
posted @ 2014-03-04 09:22 黑暗煎饼果子 阅读(533) 评论(1) 推荐(0) 编辑

VCL自带的TabControl真心不好用...

摘要: 不是说功能, 而是指自绘能力, 开启OwnerDraw以后, 画是可以画了, 可是为啥每个Tab页头的边框不能变捏 只能是灰秃秃的, 感觉很不和谐 RZ的TabControl很强大, 可惜想用它需要带一堆庞大的RZ库, 放弃... 如果想省事不用第三方库的话, 只能自己使用panel+image来模 阅读全文
posted @ 2014-02-10 09:00 黑暗煎饼果子 阅读(484) 评论(0) 推荐(0) 编辑

关于手机隐私的一个小想法

摘要: 现在智能手机都有密码保护之类的, 虽然可以防止别人拿来直接看到手机里的信息, 可以如果遇到同事/朋友甚至老婆找你要手机要看, 你就尴尬了, 给密码吧, 不想让他们看到一些东西, 不给吧又是此地无银三百两, 所以也只能老实的去解锁让他们用了如果手机里没什么特别的东西也就算了, 但是万一有什么不想让别人看到的信息, 特别是和一些小三小四甚至P友的联系方式(比如前一阵借手机结果打出老婆电话的那个新闻) 别别人发现了还是会比较麻烦的-------------------------------------------------------------------------------------- 阅读全文
posted @ 2014-01-20 08:19 黑暗煎饼果子 阅读(215) 评论(0) 推荐(0) 编辑

一些关于随着输入不断更新搜索结果的技巧

摘要: 最近发现很多人在做搜索功能的时候都喜欢实现随着输入更新搜索结果当然这样比以前的那种都输入完了点搜索按钮要直观的多, 同时也省了一次点击, 减少用户操作,但是带来的一个问题就是不断的建立新的搜索导致性能的降低比如下面这种代码是最常见的:在数据量小, 数据库连接速度快的时候这样当然没什么问题, 但是一旦反应速度慢了, 就会造成很不好的使用感觉, 每输入一个字符都要有一些卡顿的感觉procedure TForm1.edtSearchChange(Sender: TObject);begin nQuery.Close; nQuery.SQL.Text := 'SELECT XXX FROM T 阅读全文
posted @ 2014-01-17 10:11 黑暗煎饼果子 阅读(573) 评论(0) 推荐(0) 编辑

一个Delphi7的BUG

摘要: combobox有个属性DropDownCount可以控制显示的下拉数量, 但是在Delphi7中,TCombobox或者任何从TCustomComboBox继承下来的类,在windows7环境下下如果程序使用了XP风格(引用XPMan单元)那么下拉数量则被控制在30, 并且无法更改,DropDownCount属性完全失效(如果Items中超过30个元素, 则显示30个下拉, 如果比30个少, 则全部显示)这个BUG在D2010中不存在, 同样吧D2010的windowsXP.res文件复制过来应用在程序里无效, 所以猜测应该是Delphi7 VCL本身的问题 阅读全文
posted @ 2014-01-03 16:50 黑暗煎饼果子 阅读(466) 评论(0) 推荐(0) 编辑

加湿器+饮水机

摘要: 1.一般加湿器只有刻度, 但是不清楚能使用多久, 虽然都有缺水保护, 不过还是希望能知道大概使用多久, 所以如果能在加湿器上划分几个档次, 并且标注该档次每小时耗水量, 然后再对比储水罐里的水量就知道大概能用多久了2.饮水机加热, 一般晚上饮水机都没人用的,但是开着加热一直费电, 如果能加一个定时开关加热的功能就好了, 每天凌晨0点关闭加热, 早晨6点开启加热, 这样也不影响起床时喝水, 夜间也省电, 当然需要可以选择关闭这种模式来满足那些经常晚上起床找水喝的人(配一个加湿器就不会晚上口渴找水喝了) 阅读全文
posted @ 2014-01-03 10:17 黑暗煎饼果子 阅读(442) 评论(0) 推荐(0) 编辑

TM2013修改帐号数据目录

摘要: M 2013安装以后,聊天记录文件夹默认的保存位置是在“我的文档”中“Tencent Files”,而QQ就可以在软件系统设置中进行指定,但TM2013没有这一栏设置,那么如何才能修改聊天记录文件夹保存位置呢?在C盘中搜索“UserDataInfo.ini”文件,然后使用记事本打开,将里面的内容修改为如下:[UserDataSet]UserDataSavePathType=2UserDataSavePath=D:\你保存聊天记录的位置 阅读全文
posted @ 2013-12-25 12:01 黑暗煎饼果子 阅读(431) 评论(0) 推荐(0) 编辑

在XE5中 VCL空窗体的3个线程

摘要: 中午看到技术群里有人讨论, XE5一个空窗体程序就包含了3个线程, 赶忙打开XE5开了个空窗体一看, 果然如此再打开D7和2010看了一下, 都是一个线程这时看到有人说一个是输入法, 一个是GDI+, 没细想, 觉得这种说法还比较靠谱, 于是就继续吃饭了, 吃完了睡觉(猪一样的生活啊)下午睡醒了, 突然又想起了中午看到呢那些, 发觉有些不对, 空窗体启动的时候输入法是关闭的, 哪来的线程, 所以仔细跟踪了一下, 发现和输入法以及GDI+都没关系, 吧相关的单元删除以后线程依旧于是猜测应该是XE5在程序启动的时候做了什么于是根据VCL的启动顺序, 从Controls单元的Initializati 阅读全文
posted @ 2013-12-23 14:23 黑暗煎饼果子 阅读(622) 评论(1) 推荐(0) 编辑