作者归档:admin

从DelphiXE4的例子分析FireMonkey ListBox效率问题.

DelphiXE4有一个Demo CustomListBox.
演示的是一个自定义Item的ListBox.其中有一个按钮,一次添加1000个Item.
尝试着把循环加到10000.乖乖,添加时慢得不得了,接近10秒才能添加完.我当初做光速搜索的时候几百万文件搜索都是100毫秒内解决的.差距怎么[......]

全文阅读

发表在 Delphi, 未分类 | 3条评论

奇技淫巧之Delphi和JavaScript互通

Delphi2010以后增加了新的RTTI信息,也就是通过RTTI可以在运行时获取/调用对象的公开成员或者函数.
ScriptControl可以添加外部的对象,这个对象是个IDispatch接口,脚本调用的时候实际上是调用IDispatch的Invoke方法.
那么我们只要实现了IDispatc[......]

全文阅读

发表在 Delphi, 未分类 | 3条评论

奇技淫巧之获取Delphi所有类的类信息

这个绝大多数朋友应该是用不上的,纯属玩的.
昨天和业界某几个人讨论delphi的class的typeinfo问题,一般implementation部分实现的类在别处是拿不到类型信息的,尽管它有.
还比如私有的嵌套类在别处也拿不到.
于是写了几行代码扫描进程中所有类的类型信息,把这些Unpubl[......]

全文阅读

发表在 Delphi, 未分类 | 3条评论

Delphi的DateTimeToUnix/UnixToDateTime的一点小改进

Delphi的DateTimeToUnix/UnixToDateTime转换时间并没有考虑到本地时间和格林尼治时间的差,结果我天朝时间被赤裸裸的差了8个小时.
[code language="delphi"]
type
time_t = Int64;
function DateTimeT[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论

以低用户权限启动一个进程.比如Vista或者WIN7中的IE

{ *******************************************************

以低权限启动一个进程(例如IE)

版权所有 (C) 2013 wr960204 武稀松

*********************************[......]

全文阅读

发表在 Delphi, 未分类 | 3条评论

Delphi泛型动态数组的扩展.

从Delphi支持泛型的第一天起就有了一种新的动态数组类型,泛型化的动态数组–TArray.
虽然这个类型比较方便,但是却没有提供更丰富的操作.因为XE4中提供了对数据类型的Helper扩展,例如StringHelper,企图实现一个TArrayHelper但是发现Helper不支持泛型的类型.[......]

全文阅读

发表在 Delphi, 未分类 | 12条评论

Delphi XE4做一个超小的浏览器.(做一个超级小的WebBrowser)

用DelphiXE4开发一个40KB的浏览器.

刚好有个需求是要访问一个网页,但是程序的体积又不能太大.
DelphiXE4以后编译出的代码体积越来越大.我一直都是追着最新的Delphi版本,所以不可能退回早期版本.
研究了一下,发现Classes,Rtti,Themes,Contro[......]

全文阅读

发表在 Delphi, 未分类 | 30条评论

Delphi编解码JS字符串.

今天在CSDN回答网友问题,实际上就是JS字符串的解码.给他写了几行简单的代码,转义符也没全部处理.
闲着没事手痒痒,就把JS字符串的编解码都写出来,转义符也全部处理了.说不定以后用得上.
参考的Json.org上的编码规范.

CSDN问题

[code language=”delph[......]

全文阅读

发表在 Delphi, 未分类 | 2条评论

JCL for Delphi XE4

Delphi XE4出来有段时间了,但是JCL(JEDI Code Library )一直还没有能在XE4中使用的版本.
SVN拉下JCL最新的代码,在XE4上修改了一下做出了这个JCLDelphi5-XE4都能用的版本.
主要变化是Delphi XE4中SysUtils单元中的AnsiStri[......]

全文阅读

发表在 Delphi, 未分类 | 3条评论

XE4中FMX一些改进

今天把XE3的一些项目升级到了XE4,发现了一些不同.
1.Style文件格式发生了变化
2.FMX单元的做了一些拆分和调整.这个正是之前我最诟病的.FMX的单元引用十分混乱,一看就没有经过仔细的设计.
例如XE3中FMX.Types单元辗转竟然赢了ListBox,Edit等单元.[......]

全文阅读

发表在 Delphi, 未分类 | 5条评论

看Delphi XE4 iOS开发第一眼

继昨天,今天到了公司,用了某人的Mac Book Pro视网膜屏就是李维说很贵的那款,试了一下.
DelphiXE4的Demo直接输出到XCODE的iOS模拟器上,非常顺利,没有任何问题.而且也很流畅.
我猜是XE4只是提供了FireMonkey的设计器,到时候把它自动转换到XCODE对应的设计[......]

全文阅读

发表在 Delphi, 未分类 | 4条评论

Delphi XE4 第一印象

昨天听说DelphiXE4发布了.赶快去易博龙申请了30天试用.
最关心的当然是iOS开发了,听说不再尴尬的需要FreePascal编译了,嘿嘿.

但是悲催的发现自己想简单了,其实还是需要一台Mac计算机,并且要安装XCODE的.不过这个也没问题,如果Delphi确实可以做到一个[......]

全文阅读

发表在 Delphi, 未分类 | 5条评论

Delphi2007以后编译器进步的简单测试

刚刚看了有个兄弟用最新的FreePascal和Delphi7的编译器评测.觉得有点不公平.毕竟D7是10年前的产品.现在Delphi都出到XE3了.

用了个简单的代码测试了一下Delphi编译器的变化.

涵盖Delphi的版本XE3,XE2,XE,2007

测试代码如下
[cod[......]

全文阅读

发表在 Delphi | 留下评论

RAD XE3 上海发布会见闻

当时是约了8个同道弟兄一块去的,没征得他的们的同意,没他们的照片.

XE3的livebinding被李维用起来非常帅,不知道实战效果会怎么样.

WIN8的非原生支持李维解释起来也有道理,就是XE3开发的Metro风格程序可以在XP,WIN7上正常运行.

计划12月发布的BCB64位[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论

XE3中Helper的增强.

XE3之前就有想法如果能给String甚至任意类型增加Helper函数有多方便.

每个版本Delphi刚出来我都会试一下Helper能否给简单类型”打补丁”.

自从上次发现XE3有String Helper以后试了一下,现在XE3基本上可以给大多数类型打补丁了,除了Interface类型[......]

全文阅读

发表在 Delphi, 未分类 | 4条评论

XE3的String Helper

Delphi XE3增加了字符串的辅助功能.可以像操作一个结构体或者类一样操作字符串了.也就是给字符串追加了成员方法.

procedure TForm5.Button1Click(Sender: TObject);
begin
Caption := ‘abc’.ToUpper; //大写A[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论

关掉64位系统中32位程序的目录重定向

在64位Windows系统中运行的32位程序会被系统欺骗.

例如windows\system32的目录实际是windows\syswow64目录的映射.

program files实际是program files(x86)的映射.

注册表的hkey_local_machine\so[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论

判断当前进程是否以管理员权限启动的

[code lang="delphi"]

uses
shlobj;
type
WELL_KNOWN_SID_TYPE = (
WinNullSid,
WinWorldSid,
WinLocalSid,
WinCreatorOwnerSid,
WinCreator[......]

全文阅读

发表在 Delphi, 未分类 | 2条评论

DelphiXE3的FireMonkey的体积我实在无语了.

建立一个空的FireMonkey的HD工程,就一个主窗口.

编译出来Debug版20MB多.Release版8MB多.

不知道功能和速度上怎么样.不然实在找不到亮点啊

发表在 Delphi, 未分类 | 留下评论

PNG分割

Delphi新版本虽然集成了PngImage但是分割复制什么的却非常难用.稍微封装了一下.可以把一张PNG横向分割成N张.透明通道什么的都可以保持不变.

[code lang="delphi"]
//2013.7.22代码做了改动,变成按行和列切割.CopyPng也做了处理,可以拷贝任意区域[......]

全文阅读

发表在 Delphi, 未分类 | 9条评论

C++的MemoryStream,和Delphi/BCB基本兼容

只有一个头文件.

[code lang="cpp"]

/*
CMemoryStream
学过Delphi和BCB的同学懂的.
只要引用这个头文件即可.
*/
#pragma once

#include <Windows.h>[......]

全文阅读

发表在 CPP, 未分类 | 留下评论

C++内存INI文件

这套代码适用于从服务器拉取INI,而不用保存到文件,而且是跨平台的.支持Unicode和Ansi.

而Windows 那套INI API先不说和平台绑死,他一定要访问文件的.

[code lang="cpp"]

/*
王锐.2012.8.31
*/

#pragma onc[......]

全文阅读

发表在 CPP, 未分类 | 留下评论

FireMonkey工程减肥

今天和同事在搞一个Delphi XE2的东东.结果发现FireMonkey编译出来的程序有8MB.即便采用了Release + WeakRTTI编译选项也3.5MB左右.

阅读了一下FireMonkey的源代码.发现FireMonkey耦合的非常紧密.

例如Forms单元,就实现了2D,[......]

全文阅读

发表在 Delphi, 未分类 | 2条评论

内存加载模块,支持32/64 DLL文件

http://blog.csdn.net/wr960204/article/details/2134157

上几天有人说找遍互联网也找不到内存加载模块能够成功加载DelphiXE2编译出来的的64位DLL的.

看了一下,其实DelphiXE2编译出来的DLL本身是没问题的,而是这些内存加[......]

全文阅读

发表在 Delphi, 未分类 | 16条评论

Win7下超级管理员创建普通权限任务

转自我的旧博客

已转至新的博客 http://www.raysoftware点击打开链接.cn/?p=49

项目中用到一个功能,Win7下超级管理员创建普通权限任务.

试了几种办法,例如获取资源管理器的Token,然后以这个Token用CreateProcessWithTokenW[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论

Delphi磁性窗口

转自我的旧博客

昨天要用到磁性窗口,就是两个窗口离得近到一个距离就吸附到一起.拖动主窗口,吸附窗体一块运动.

到网上搜了一下,基本没见到可以使用的.有个东东,还是收费的.没办法自己写了一个.

用法很简单,把你的窗口都改成从这个继承即可生效.例如

type
TForm[......]

全文阅读

发表在 Delphi, 未分类 | 留下评论