博文

TIOBE 5月份编程语言排行榜(2011-06-13 13:18:00)

摘要: 前10名编程语言走势图: ......

阅读全文(2715) | 评论:0

一次调用接口函数遇到麻烦后的经验教训(2010-03-31 16:25:00)

摘要:一次在调用接口函数获取快捷方式信息时,总是遇到意外,一直查来查去查了好半天,原代码如下: function GetShortCutImf(LinkFileName:string; var ShortCutImf:TShortCutImf):boolean;varvShellLink: IShellLink; vPersistFile: IPersistFile; vUnKnown: IUnKnown;vWin32FindData: TWin32FindData;vBuffer: array[0..100] of Char;pword:Word;PCmd:integer;ffd:WIN32_FIND_DATA;ret:Longint;beginResult:=true;try  vUnKnown := CreateComObject(CLSID_ShellLink);  vShellLink := vUnKnown as IShellLink;  vPersistFile := vUnKnown as IPersistFile;  if vPersistFile.Load(PWideChar(LinkFileName),0)=s_OK then//就在这里总是出错    begin    ret:=vShellLink.GetPath(vBuffer,SizeOf(vBuffer),ffd,SLGP_UNCPRIORITY);  //Pchar(s),MAX_PATH   ....... 最后终于发现一个小细节,在PWideChar(LinkFileName)上,原来以为这样简单转换,就可以把ANSI字符串转为WIDESTRING指针,结果系统豪不转换的直接把LinkFileName的指针当做widestring指针传过去了,怪不得系统老执行不下去。看来一个转换的语句还是不可少啊,增加后问题解决,特立此备忘。 function GetShortCutImf(LinkFileName:string; var ShortCutImf:TShortCutImf):boolean;varvShellLink: IShellLink;......

阅读全文(2126) | 评论:0

如何使得程序在状态栏中隐藏显示(2009-11-15 16:28:00)

摘要:目的就是程序的界面不动(无需最小化或者HIDE)但是在状态栏中的程序按钮消失。 一般来说,使用下面两个语句就可以了。 ShowWindow(Application.Handle,SW_NORMAL); //恢复显示 ShowWindow(Application.Handle,SW_HIDE);//隐藏 但是这两个语句不是百试百灵,我做的一个程序就不灵光了,怎样都找不出来原因,好容易在网上找到另外一个更加稳定的实现语句,如下: 隐藏时语句:    ShowWindow(Handle,SW_HIDE);    dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);    SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle OR WS_EX_TOOLWINDOW      AND NOT WS_EX_APPWINDOW);    ShowWindow(Handle,SW_SHOW); 恢复时语句:    ShowWindow(Handle,SW_HIDE);    dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);    SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle AND NOT WS_EX_TOOLWINDOW      or WS_EX_APPWINDOW);    ShowWindow(Handle,SW_SHOW); 注意里面的句柄不再是APPLICATION的,而是窗体FORM的了,看起来好像罗里罗唆的,但是WORK!,而且不这样做还真的不行,晕死。  ......

阅读全文(3183) | 评论:0

TIOBE 2009年4月流行开发语言排名(2009-04-14 08:55:00)

摘要:TIOBE开发语言排行榜日前宣布了2009年4月流行开发语言的排名结果: 作为对比,以下是2008年4月流行开发语言的排名: (转自:http://news.csdn.net/a/20090409/210296.html)......

阅读全文(4515) | 评论:0

[zt]delphi常用函数(2008-06-04 08:54:00)

摘要:Abort 引起放弃的意外处理Abs 绝对值函数AddExitProc 将一过程添加到运行时库的结束过程表中Addr 返回指定对象的地址AdjustLineBreaks 将给定字符串的行分隔符调整为CR/LF序列AllocMem 在堆栈上分配给定大小的块AnsiCompareStr 比较字符串(区分大小写)AnsiCompareText 比较字符串(不区分大小写)AnsiLowerCase 将字符转换为小写AnsiUpperCase 将字符转换为大写Append 以附加的方式打开已有的文件ArcTan 余切函数AssignFile 给文件变量赋一外部文件名Assigned 测试函数或过程变量是否为空BlockRead 读一个或多个记录到变量中BlockWrite 从变量中写一个或多个记录ChangeFileExt 改变文件的后缀ChDir 改变当前目录Chr 返回指定序数的字符CompareStr 比较字符串(区分大小写)Concat 合并字符串Copy 返回一字符串的子串Cos 余弦函数Date 返回当前的日期DateTimeToFileDate 将DELPHI的日期格式转换为DOS的日期格式DateTimeToStr 将日期时间格式转换为字符串DateTimeToString 将日期时间格式转换为字符串DateToStr 将日期格式转换为字符串DayOfWeek 返回星期的数值Dec 递减变量值DecodeDate 将日期格式分解为年月日DecodeTime 将时间格式分解为时、分、秒、毫秒Delete 从字符串中删除子串DiskFree 返回剩余磁盘空间的大小DiskSize 返回指定磁盘的容量Dispose 释放动态变量所占的空间DisposeStr 释放字符串在堆栈中的内存空间EncodeDate 将年月日合成为日期格式EncodeTime 将时、分、秒、毫秒合成为时间格式......

阅读全文(3661) | 评论:0

开发语言排行榜(2008-04-25 10:41:00)

摘要:TIOBE开发语言排行榜日前宣布了2008年4月流行开发语言的排名结果,Java 和C 依然占据榜首一二名的位置,可喜的是Delphi 保持了继续上升的良好态势。详情见下图。一直在用delphi来“手工制作”的自己的各种小玩意,一个懂行的同事总是劝我说,它已经是明日黄花,放弃也罢。可是我实在找不到一个可以这样轻易方便,适合我这样的业余人士使用的语言工具了,vc++,vc#不是没用过,但实在是深奥麻烦啊。希望DELPHI继续往上爬呀爬。 10种语言使用情况: (源自:http://news.csdn.net/n/20080411/115141.html)......

阅读全文(4558) | 评论:0

系统 WM_ 消息列表及说明(2008-04-14 14:56:00)

摘要:WM_NULL=$0000; WM_CREATE=$0001; 应用程序创建一个窗口WM_DESTROY=$0002; 一个窗口被销毁WM_MOVE=$0003; 移动一个窗口WM_SIZE=$0005; 改变一个窗口的大小WM_ACTIVATE=$0006; 一个窗口被激活或失去激活状态;WM_SETFOCUS=$0007; 获得焦点后WM_KILLFOCUS=$0008; 失去焦点WM_ENABLE=$000A; 改变enable状态WM_SETREDRAW=$000B; 设置窗口是否能重画WM_SETTEXT=$000C; 应用程序发送此消息来设置一个窗口的文本WM_GETTEXT=$000D; 应用程序发送此消息来复制对应窗口的文本到缓冲区WM_GETTEXTLENGTH=$000E; 得到与一个窗口有关的文本的长度(不包含空字符)WM_PAINT=$000F; 要求一个窗口重画自己WM_CLOSE=$0010; 当一个窗口或应用程序要关闭时发送一个信号WM_QUERYENDSESSION=$0011; 当用户选择结束对话框或程序自己调用ExitWindows函数WM_QUIT=$0012; 用来结束程序运行或当程序调用postquitmessage函数WM_QUERYOPEN=$0013; 当用户窗口恢复以前的大小位置时,把此消息发送给某个图标WM_ERASEBKGND=$0014; 当窗口背景必须被擦除时(例在窗口改变大小时)WM_SYSCOLORCHANGE=$0015; 当系统颜色改变时,发送此消息给所有顶级窗口WM_ENDSESSION=$0016; 当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,通知它对话是否结束WM_SYSTEMERROR=$0017; WM_SHOWWINDOW=$0018; 当隐藏或显示窗口是发送此消息给这个窗口WM_ACTIVATEAPP=$001C; 发此消息给应用程序哪个窗口是激活的,哪个是非激活的;WM_FONTCHANGE=$001D; 当系统的字体资源库变化时发送此消息给所有顶级窗口WM_TIMECHANGE=$001E; 当系统的时间变化时发送此消息给所有顶级窗口WM_CANCELMODE=$001F; 发送此消息来取消某种正在进行的摸态(操作)WM_SETCURSOR=$00......

阅读全文(7754) | 评论:0

delphi编程时彻底清除无用的DCU文件(2008-02-14 13:48:00)

摘要:今天在清理程序文件夹中的垃圾文件后,发现在delphi中原本能运行程序却不能编译进行,系统提示在DPR文件中File Notfound 某个DCU文件,这个文件是个垃圾,已经被我删除了,我在DPR文件中根本没有用到这个文件的语句。 经过反复试验,终于知道了怎么处理: 把程序文件夹中的所有DCU文件都删除,然后重新编译,这样系统就终于正确指示出引用这个DCU文件的位置了,它其实不在DPR文件内,而是在某个PAS文件内。......

阅读全文(4325) | 评论:0

delphi长循环时能响应外部命令的语句(2007-12-28 11:42:00)

摘要:procedure TForm1.Button1Click(Sender: TObject); begin   b:=true;   while(b) do   begin     Caption:='Working';     Application.ProcessMessages;   end; end; procedure TForm1.Button2Click(Sender: TObject); begin   b:=false;   Caption:='Stop';end; ......

阅读全文(3695) | 评论:0

学习DELPHI,一些比较少用的知识(2007-12-27 11:18:00)

摘要:Delphi笔记(一些比较少用的知识) 1、随机函数一般是用Random函数,并在之前用Randomize初始化,原来还有:RandomFrom 从参数指定的数组中随机选出一个数值(整数、字符串等)例:RandomFrom(['D1','D2','D3','D4']) RandomRange 在整数范围随机产生一个整数。例:X:=RandomRange(20,50);// 20<=X<=50 X为整数 2、时间函数FormatDateTime 格式化字符串例:FormatDateTime('yyyy年 mm月 dd日 hh时 nn分 ss秒',now())DecodeDate 将日期分解为年月日例:DecodeDate(now(),Year,Month,Day)//Year,Month,Day:word同理还有 DecodeTime(now(),hour,minute,second,msecond)反函数是 EncodeDate(Year,Month,Day:word):TDateTime;         EncodeTime(hour,minute,second,msecond:word):TDateTime; 3、在循环中用到的中断命令Abort 无记录异常Break 中断循环Continue 跳到下一循环Exit 跳出函数过程RunError 中止程序Halt 中止程序,返回操作系统 4、其他函数Odd 判断奇数偶数Pred 前一序号的值Succ 后一序号的值 5、类的属性属性的索引 function GetX(Const Index:Integer):Integer;Procedure SetX(Const Index,Value:Integer); property A:integer index(0) read GetX write SetX;property B:integer index(1) read GetX write SetX; A,B共同使用同一个函数和过程 数组属性 function GetX(Index:Integer):String;Procedure SetX(Index:Integer,Const Value:Str......

阅读全文(3532) | 评论:0