- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 一点关于Ares的看法
一直想写点最近看Ares代码的感想,最近小忙了几天,今天得空写两句。第一眼这个软件的界面和功能确实不错,多线程也做的很好。写这些代码的人应该有非常强的毅力和逻辑思维能力。如果我把代码的结构写成这个样子,我肯定是无法还能让它这么稳定的运行的。代码也显得很有经验,很多细节的地方考虑的很仔细,比如对Windows系统的了解,这点是很多Delphi程序员的通病,VCL的包装经常让我们忘记了系统API的
2008-01-29 10:37:00
720
原创 Ares心得2
1、EnumWindows获取所有Top-lever窗体。第一个参数是一个回调函数,每找到一个函数就运行一次回调函数。第二个参数是回调函数的参数。以下是回调函数的格式:BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam );2、通过发送WM_COPYDATA消息,实现进程间通讯。下面是copydata的结构和发消息时
2008-01-29 10:28:00
669
转载 Delphi 完全时尚手册之 Visual Style 篇---使非标准 Win32 控件或自画控件也具有 Windows XP 的界面风格
Delphi 完全时尚手册之 Visual Style 篇---使非标准 Win32 控件或自画控件也具有 Windows XP 的界面风格 这里先说说两个概念:Theme(主题)和 Visual Style 。Theme 最早出现在 Microsoft Plus! for Windows 95 中,是 Windows 中 Wallpaper、Cursors、Fonts、Sounds 、
2008-01-23 14:19:00
1026
原创 XP Visual Styles的一点体会
首先在MSDN里Using Windows XP Visual Styles对Visual Styles的使用有详细描述,特别是对我一直很迷惑的XPMan单元,有了解释。在XPMan单元里有很重要的一行,{$R WindowsXP.res}。里面用XML描述了一些信息,结合msdn Attribute
2008-01-23 14:15:00
998
转载 Delphi中的线程类【转载】
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。 线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当
2008-01-21 13:57:00
609
转载 Windows环境下Unicode编程总结
UNICODE环境设置在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。 UNICODE编译设置:C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE在ProjectSetting/link/output 中设置Entry为wWinMainCRTSta
2008-01-21 09:28:00
552
原创 Classes2 单元
比较了一下。我感觉稍微有效的点的代码在Grow部分。这是TMyList的Growprocedure TMyList.Grow;begin if FCapacity64 then SetCapacity(FCapacity+8) else if FCapacity256 then SetCapacity(FCapacity+32) else if FCapacity1024 the
2008-01-18 16:52:00
657
原创 uplaylistfrm 和 Drag_N_Drop 单元
uplaylistfrm: 播放列表窗口。很大一部分拖放的代码写在了mainform的Drag_And_Drop_AddFile方法里。用惯了Delphi封装好的拖放,今天就对Windows拖放的Api熟悉一下。 首先是设置窗体创建参数 TCreateParams 结构。使窗体可以接受WM_DROPFILES 消息。Params.ExStyle := Params.ExStyle or
2008-01-18 11:17:00
869
原创 Delphi 的Record结构体
一直以来对带case的Record只会用而不求甚解。知道他类似于c语言的union。今天详细看了help。了解一下。汗~啊。先对自己内心进行下自我批评~~~~下面是偶的新体会。1. 首先了解到record是可以限制field的范围的,而且定义枚举类型的。type TDateRec = record Year: Integer; Month: (Jan, Feb,
2008-01-16 14:20:00
15709
2
原创 Ares 代码心得1
1、创建一个临时的定时器刷新界面,注意执行OnTimer的时候把自己free掉。另,OnTimer传进来的Sender就是Timer自己。2、SHFOLDER.DLL .....(外壳文件夹服务). 若要正常打开系统属性, 例如我的文档,需要保留此文件。例如Ares中利用此函数获得我的文档的地址。3、ufrmhint:提示窗口,(最具特色的UI之一)。其中对于透明窗体的应用很
2008-01-15 17:01:00
1763
转载 Ares源码 单元介绍(自己根据最新版本更新)
源代码压缩包文件名:aresregular209_05032007.zipares/,,ares_objects,应用程序对象(some application objects are listed here)ares_types,应用程序数据结构AsyncExTypes,视频解码器??blcksock,socketchatroom_*,聊天室相关class_cmdlist,命令行列表Clas
2008-01-15 15:59:00
2244
2
原创 Inc文件心得
inc 首先是两片在网上搜索的片段。Include文件。与C++的include不一样。可嵌入Delphi的源代码文件中,Delphi编译是遇$I到include文件时相当于Copy一份inc文件的内容到当前位置,一般用于提取一些重复的每个单元都需要定义的内容,或用于定义通用的编译器指示字条件,甚至可以使用Delphi的inc机制实现C++的范型(可惜不能支持操作符重载)
2008-01-15 13:11:00
4684
1
原创 编译 Ares Galaxy 的过程
这几天工作不忙,在公司闲着没事,逛逛sourceforge,忽然发现排名第二位的Ares居然是Delphi编写的。正是俺的老本行。下载下来瞄~一下。看一下下面的文本文件,头小发懵~这么多第三方控件!算了,今天反正闲着,试试看吧。 首先就是回到俺以前的Delphi7上,要不是2006所带的重构工具和IDE实在太诱人,俺还是觉得Delphi7的界面友好,大概是习惯的缘故吧。
2008-01-14 17:08:00
2839
2
转载 用Delphi2005和DUnit搭建敏捷开发平台(一篇被到处转贴的文章,不过看起来不错,有空应该尝试一下)
之前用的是Java那一套东西,有Eclipse什么都搞定了。现在因为要用Delphi改一个即时通讯软件的缘故,想着怎么能把重构和单元测试那一套搬到Delphi这边来。书上说给现有的代码加单元测试能够加深对代码的理解,并且可以作为改善代码的基础,这不正是我要做的事情吗?于是,为了搭建这么一个敏捷平台,我以Delphi2005和DUnit进行了一点小小的尝试,并把结果记录于下,与大家分享。 1、下载D
2007-04-06 10:16:00
651
转载 DUnit 实践(转自http://boblin.my.gsdn.net/)
我一直以为xUnit不能用来测试带界面的单元,但是我错了。看《Refactoring Improving the Design of Existing Code》中强调Testing,决定起用DUnit, 正好今天要给一个Form 增加保存字体设置的功能,遂决定从它开始。保存和恢复复字体的代码如下,TfmXXXX是一个带有TMemeo 的Form,目标是每次打开这个Form时都能使用上
2007-04-05 13:05:00
869
转载 程序里调用CMD模式下的程序(转自csdn社区)
function WinExecute(FileName: string; Visibility: Integer = SW_NORMAL): Boolean; {* 运行一个文件并立即返回 } function WinExecAndWait32(FileName: string; Visibility: Integer = SW_NORMAL; ProcessMsg: Boolean = F
2007-03-28 13:27:00
858
原创 人总是被环境控制
刚刚把同事的一个代码接过来,觉得很烂,很想重构一下。可第一公司没奖金的奖励;第二又是Delphi语言的东西,没啥动力。扔在那吧。
2007-03-14 16:25:00
572
转载 61条面向对象设计的经验原则
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。-----Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有
2007-03-01 14:14:00
510
翻译 改变窗口层叠的顺序
BringWindowToTop The BringWindowToTop function brings the specified window to the top of the Z order. If the window is a top-level window, it is activated. If the window is a child window, the top-l
2006-06-16 16:29:00
4161
翻译 IsIconic(判断窗口是否最小化)
The IsIconic function determines whether the specified window is minimized (iconic). 函数isiconic返回值取决于指定窗口是否已经最小化。BOOL IsIconic( HWND hWnd // handle of window ); ParametershWnd窗口句柄
2006-06-16 15:41:00
13116
原创 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
单片机C51串口中断接收和发送测试例程(含通信协议的实现) [日期:2006-1-26] 来源:rs232 作者: [字体:大 中 小] 通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标
2006-03-06 00:34:00
2037
原创 对选项的程序的改进
如果对一个软件内有很多软件开关的时候,如果采用一个全局变量在程序启动时载入,用这个变量的各个位去表示各个选项,这样就大大减少了IF语句的数量。一个IF语句一次判断多个位,多方便。
2006-03-05 23:45:00
746
转载 对继电器操作
继电器都是ms级。由于火花或电源抖动都可能造成系统复位或eeprom写入失败。所以要在写入EEPROM之后然后再操作继电器,以免中间程序复位。造成EEPROM内状态和实际继电器状态的不一致。
2006-03-05 16:57:00
789
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人