-
近期文章
- Android,保活,复活,防杀 2020 年 12 月 1 日
- Managed Record的使用一则 2020 年 9 月 9 日
- Delphi Managed Record的一个不方便的地方 2020 年 9 月 7 日
- Delphi10.4托管记录(Managed Record)产生的机器代码分析 2020 年 6 月 3 日
- Delphi 10.4 的期待和不足 2020 年 5 月 29 日
- CPP各个操作系统和平台的宏定义 2018 年 3 月 14 日
- 跨平台的,在FMX中读取ICON文件的每一帧到Bitmap 2017 年 4 月 19 日
- 关闭掉新版Delphi的几个固定导出函数(__dbk_fcall_wrapper,dbkFCallWrapperAddr,TMethodImplementationIntercept) 2017 年 4 月 7 日
- FireMonkey在使用GDIPlus放大图像的Bug的修复 2017 年 2 月 24 日
- FireMonkey GIF处理的更新 2016 年 12 月 7 日
- FireMonkey跨平台的GIF解决方案 2016 年 12 月 2 日
- VC版本的MakeObjectInstance把WNDPROC映射到类的成员函数 2016 年 2 月 17 日
- Cocos2d-x程序Windows下VC中文乱码的解决 2014 年 9 月 16 日
- Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数. 2014 年 9 月 4 日
- HTML解析器更新 2014 年 6 月 18 日
分类目录
文章归档
链接表
近期评论
- 666发表在《Delphi读取Android设备联系人.DelphiXE6中编译通过》
- 666发表在《给Delphi的工具条按钮添加BTNS_WHOLEDROPDOWN风格》
- 666发表在《跨平台的,在FMX中读取ICON文件的每一帧到Bitmap》
- 666发表在《Delphi2007以后编译器进步的简单测试》
- 666发表在《Delphi Hook Library做了一点小更新》
- 666发表在《XE5开发Android程序调用电话相关功能(短信息和电话)》
- 666发表在《Delphi XE5的移动项目中对象已经是生存期自管理的了》
- 666发表在《共享一个之前封装的多进程共享内存的MemoryStream》
- 666发表在《Delphi XE5中移动平台的字符串要注意的事项》
- 666发表在《Delphi XE5开发Android程序使用自定义字体文件.》
分类目录归档:Delphi
Delphi Hook Library
常常见到有朋友问Hook怎么做和COM的HOOK怎么弄.
来点干货,给Delphi业界朋友做点贡献.把我之前写的一个Delphi Hook库放到了Google Code上.方便大家.
微软官方钩子库Detours X86是免费的,X64可是要1000美刀的哦.
支持X86,X64的函数钩子.线[......]
Delphi写ShellCode获取Kernel32.DLL的地址.
好几年前曾写过一些ShellCode代码.
Delphi是最适合写ShellCode的工具
很多年没用了,今天刚刚回头看了一下,发现是随着系统的发展,其中获取Kernel32.DLL的方法在Vista/WIN7时代和X64中都已经不使用了.
就完善了一下.
现在是XP/Vista/WIN7以[......]
从DelphiXE4的例子分析FireMonkey ListBox效率问题.
DelphiXE4有一个Demo CustomListBox.
演示的是一个自定义Item的ListBox.其中有一个按钮,一次添加1000个Item.
尝试着把循环加到10000.乖乖,添加时慢得不得了,接近10秒才能添加完.我当初做光速搜索的时候几百万文件搜索都是100毫秒内解决的.差距怎么[......]
奇技淫巧之Delphi和JavaScript互通
Delphi2010以后增加了新的RTTI信息,也就是通过RTTI可以在运行时获取/调用对象的公开成员或者函数.
ScriptControl可以添加外部的对象,这个对象是个IDispatch接口,脚本调用的时候实际上是调用IDispatch的Invoke方法.
那么我们只要实现了IDispatc[......]
奇技淫巧之获取Delphi所有类的类信息
这个绝大多数朋友应该是用不上的,纯属玩的.
昨天和业界某几个人讨论delphi的class的typeinfo问题,一般implementation部分实现的类在别处是拿不到类型信息的,尽管它有.
还比如私有的嵌套类在别处也拿不到.
于是写了几行代码扫描进程中所有类的类型信息,把这些Unpubl[......]
Delphi的DateTimeToUnix/UnixToDateTime的一点小改进
Delphi的DateTimeToUnix/UnixToDateTime转换时间并没有考虑到本地时间和格林尼治时间的差,结果我天朝时间被赤裸裸的差了8个小时.
[code language="delphi"]
type
time_t = Int64;
function DateTimeT[......]
以低用户权限启动一个进程.比如Vista或者WIN7中的IE
{ *******************************************************
以低权限启动一个进程(例如IE)
版权所有 (C) 2013 wr960204 武稀松
*********************************[......]
Delphi泛型动态数组的扩展.
从Delphi支持泛型的第一天起就有了一种新的动态数组类型,泛型化的动态数组–TArray.
虽然这个类型比较方便,但是却没有提供更丰富的操作.因为XE4中提供了对数据类型的Helper扩展,例如StringHelper,企图实现一个TArrayHelper但是发现Helper不支持泛型的类型.[......]
Delphi XE4做一个超小的浏览器.(做一个超级小的WebBrowser)
刚好有个需求是要访问一个网页,但是程序的体积又不能太大.
DelphiXE4以后编译出的代码体积越来越大.我一直都是追着最新的Delphi版本,所以不可能退回早期版本.
研究了一下,发现Classes,Rtti,Themes,Contro[......]
Delphi编解码JS字符串.
今天在CSDN回答网友问题,实际上就是JS字符串的解码.给他写了几行简单的代码,转义符也没全部处理.
闲着没事手痒痒,就把JS字符串的编解码都写出来,转义符也全部处理了.说不定以后用得上.
参考的Json.org上的编码规范.
[code language=”delph[......]
JCL for Delphi XE4
Delphi XE4出来有段时间了,但是JCL(JEDI Code Library )一直还没有能在XE4中使用的版本.
SVN拉下JCL最新的代码,在XE4上修改了一下做出了这个JCLDelphi5-XE4都能用的版本.
主要变化是Delphi XE4中SysUtils单元中的AnsiStri[......]
XE4中FMX一些改进
今天把XE3的一些项目升级到了XE4,发现了一些不同.
1.Style文件格式发生了变化
2.FMX单元的做了一些拆分和调整.这个正是之前我最诟病的.FMX的单元引用十分混乱,一看就没有经过仔细的设计.
例如XE3中FMX.Types单元辗转竟然赢了ListBox,Edit等单元.[......]
看Delphi XE4 iOS开发第一眼
继昨天,今天到了公司,用了某人的Mac Book Pro视网膜屏就是李维说很贵的那款,试了一下.
DelphiXE4的Demo直接输出到XCODE的iOS模拟器上,非常顺利,没有任何问题.而且也很流畅.
我猜是XE4只是提供了FireMonkey的设计器,到时候把它自动转换到XCODE对应的设计[......]
Delphi XE4 第一印象
Delphi2007以后编译器进步的简单测试
刚刚看了有个兄弟用最新的FreePascal和Delphi7的编译器评测.觉得有点不公平.毕竟D7是10年前的产品.现在Delphi都出到XE3了.
用了个简单的代码测试了一下Delphi编译器的变化.
涵盖Delphi的版本XE3,XE2,XE,2007
测试代码如下
[cod[......]
RAD XE3 上海发布会见闻
当时是约了8个同道弟兄一块去的,没征得他的们的同意,没他们的照片.
XE3的livebinding被李维用起来非常帅,不知道实战效果会怎么样.
WIN8的非原生支持李维解释起来也有道理,就是XE3开发的Metro风格程序可以在XP,WIN7上正常运行.
计划12月发布的BCB64位[......]
XE3中Helper的增强.
XE3之前就有想法如果能给String甚至任意类型增加Helper函数有多方便.
每个版本Delphi刚出来我都会试一下Helper能否给简单类型”打补丁”.
自从上次发现XE3有String Helper以后试了一下,现在XE3基本上可以给大多数类型打补丁了,除了Interface类型[......]
XE3的String Helper
Delphi XE3增加了字符串的辅助功能.可以像操作一个结构体或者类一样操作字符串了.也就是给字符串追加了成员方法.
procedure TForm5.Button1Click(Sender: TObject);
begin
Caption := ‘abc’.ToUpper; //大写A[......]
关掉64位系统中32位程序的目录重定向
在64位Windows系统中运行的32位程序会被系统欺骗.
例如windows\system32的目录实际是windows\syswow64目录的映射.
program files实际是program files(x86)的映射.
注册表的hkey_local_machine\so[......]
判断当前进程是否以管理员权限启动的
[code lang="delphi"]
uses
shlobj;
type
WELL_KNOWN_SID_TYPE = (
WinNullSid,
WinWorldSid,
WinLocalSid,
WinCreatorOwnerSid,
WinCreator[......]
DelphiXE3的FireMonkey的体积我实在无语了.
建立一个空的FireMonkey的HD工程,就一个主窗口.
编译出来Debug版20MB多.Release版8MB多.
不知道功能和速度上怎么样.不然实在找不到亮点啊
PNG分割
Delphi新版本虽然集成了PngImage但是分割复制什么的却非常难用.稍微封装了一下.可以把一张PNG横向分割成N张.透明通道什么的都可以保持不变.
[code lang="delphi"]
//2013.7.22代码做了改动,变成按行和列切割.CopyPng也做了处理,可以拷贝任意区域[......]
FireMonkey工程减肥
今天和同事在搞一个Delphi XE2的东东.结果发现FireMonkey编译出来的程序有8MB.即便采用了Release + WeakRTTI编译选项也3.5MB左右.
阅读了一下FireMonkey的源代码.发现FireMonkey耦合的非常紧密.
例如Forms单元,就实现了2D,[......]
内存加载模块,支持32/64 DLL文件
http://blog.csdn.net/wr960204/article/details/2134157
上几天有人说找遍互联网也找不到内存加载模块能够成功加载DelphiXE2编译出来的的64位DLL的.
看了一下,其实DelphiXE2编译出来的DLL本身是没问题的,而是这些内存加[......]
Win7下超级管理员创建普通权限任务
转自我的旧博客
已转至新的博客 http://www.raysoftware点击打开链接.cn/?p=49
项目中用到一个功能,Win7下超级管理员创建普通权限任务.
试了几种办法,例如获取资源管理器的Token,然后以这个Token用CreateProcessWithTokenW[......]
Delphi磁性窗口
转自我的旧博客
昨天要用到磁性窗口,就是两个窗口离得近到一个距离就吸附到一起.拖动主窗口,吸附窗体一块运动.
到网上搜了一下,基本没见到可以使用的.有个东东,还是收费的.没办法自己写了一个.
用法很简单,把你的窗口都改成从这个继承即可生效.例如
type
TForm[......]