Delphi
xfxlylove
这个作者很懒,什么都没留下…
展开
-
Delphi拼装SQL语句应该注意的地方
Delphi中使用SQL语句要注意的事项,归纳起来主要有一下几条: 1、一定不要漏空格或换行符。 在使用Delphi开发管理软件时,我们要经常拼装SQL语句,例如:'SELECT * FROM Users'+ 'WHERE UserOID IS NOT NULL'这个时候SQL语句就变成了SELECT * FROM UsersWHERE UserOID IS原创 2011-12-01 09:22:49 · 1034 阅读 · 0 评论 -
Delphi判断文件夹下子文件夹是否为空,及删除子文件夹,遍历文件夹及子文件夹的文件
unit unDirOption;interface uses SysUtils, Classes; //查当前文件夹下的所有子文件 procedure SearchFile(DirName: String; var sList: TStrings); //判断文件夹是否为空 function IsEmptyDir(sDir: String): Boolean; //判断字符串转载 2012-05-28 12:56:47 · 3815 阅读 · 0 评论 -
cxGrid根据条件改变文字颜色
下面为在CxGrid的CustomDrawCell的代码procedure TForm1.cxGrid1DBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);v原创 2012-05-08 17:08:57 · 2004 阅读 · 0 评论 -
Delphi程序员笔试题目(各位可以看看呵)
一. 选择题(共40道) 1. 用户开发程序时需要经常在窗体和编辑器窗口之间来回切换,可使用快捷键()。 A、 F12和F11 B、 F12和F13 C、 F12和Ctrl+F12 D、 F12和Alt+F12 E、F12和Shift+F12 2. 某函数如下: Function check(n,k:Integer转载 2011-12-21 11:35:55 · 1564 阅读 · 0 评论 -
Delphi中Parent与调用API中的SetParent引起的问题
此问题是在项目中,因为打开的画面需像DelphiXe的显示风格一样来显示。所有的Form都需要Dock到一个PageControl的容器中,开始的时候对新创建的Form的Parent属性进行设置他的值。此时运行程序后发现Form上的所有元件都不能进行删除与复制操作,也就是无法获得焦点!后经验证,此问题需调用API的SetParent来处理,代码如下: var vPage: Tcx原创 2011-12-07 17:11:18 · 3516 阅读 · 0 评论 -
运行一个文件并等待文件运行完成
下面实现运行一个文件并等待其结束,如果返回为0 则表示运行成功.function RunFileWait(FileName: string; Visibility: Integer = SW_NORMAL): Integer; //运行一个文件并等待其结束var zAppName: array[0..512] of Char; zCurDir: array[0..2原创 2011-12-02 08:36:15 · 549 阅读 · 0 评论 -
怎么样才能遍历一个目录跟其下的子目录(以二种方式实现
下面的功能为实现计算指定目录下某类型的文件个数,并写入List列表中,根据这个可写出对文件目录的其他的操作 procedure SearchFileExList(const ADir, vType: string; var AFileItems: TStringList);var vFound: TSearchRec; vSourceDirs, vDestDirs:原创 2011-12-02 08:34:49 · 392 阅读 · 0 评论 -
关于TstringList 的操作
在对TStringList操作时,经常要用到TStringList的AddObject方法,在用AddObject加入对象后,一定要记得对加入到TStringList中的对象进行释放,方法有二种,如下 :1. 在已知道对象名跟对象个数的情况下,我们可以用直接的方法把对象Free掉就可以,如下代码:var vStringList:TStringList; vObject:TO原创 2011-12-02 08:44:55 · 1020 阅读 · 0 评论 -
关于Steam的CopyFrom操作
在对流的操作的时候 如果不设置Size,那么在CopyFrom的时候,MemoryStream首先从源Stream读取一个Buf(假设它的长度是32K,这是假设,用来说明问题的,具体Buf的长度参看源码),然后把这个Buf写入MemoryStream(既调用MemoryStream.Write方法),在写入的过程中,MemoryStream分配一个Buf长度的内存(32K),然后把数据写进去,接着原创 2011-12-02 08:39:23 · 1600 阅读 · 0 评论 -
DataTime时间转换成FileTime时间
在系统中如果要对文件的时间进行操作,但是这时不能用DataTime的时间类型进行,而需要进行DataTime到FileTime的转换,但DataTime与FileTime中间是没有直接转换的,需要先将DataTime类型转换为SystmeTime类型,然后从SystemTime类型转换到FileTime.具体操作代码如下:var SystemTime: TSystemTime;原创 2011-12-02 08:38:18 · 1557 阅读 · 0 评论 -
SendMessage跟PostMessage消息的异同
SendMessage 发送消息后会等待处理结果;PostMessage 把消息送人等待处理的消息队列.发送 SendMessage 消息好比: 你扔一颗手榴弹到敌群中, 并期待看到血肉横飞的场面;发送 PostMessage 消息好比: 你在敌人就要路过的地方埋上一颗地雷, 你就不管了.如果想要等待处理的结果就只能用SendMessage原创 2011-12-02 08:37:17 · 368 阅读 · 0 评论 -
怎么读注册表的值
读注册表的时候要引用到Registry这个单元 下面的代码是实现把指定数据库按当天日期备份到SQL安装目录下的备份目录下var vRegPath: TRegistry; vPath: string; vCommand: TADOCommand;begin vCommand := TADOCommand.Create(nil); vRegPath := TReg原创 2011-12-02 08:32:06 · 457 阅读 · 0 评论 -
关于Delphi程序中互相引用的问题
在写代码的时候,我们有时候会在A窗体中用到了B窗体,而B窗体又可能反过来引用A窗体中的对象,此时如果处理不好就会在窗体释放的时候,对象会报内部例外的错误。这时我们可以用另一种方式去处理这种问题:如果A窗体中用到了B窗体,我们就要尽量不要再去B窗体中反过来引用A的东东。这时我们可以把B窗体中要用到的对象另外封装成一个类,然后定义一个此类的一个全局变量,然后定义一个创建此对象的函数,这样我们就原创 2011-12-02 08:42:27 · 836 阅读 · 0 评论 -
消息以中文字符同步到UI上
在系统中用到消息的时候会有很多,但是SendMessage跟PostMessage发送消息的时候都不能对字符串进行直接的传送,要经过一些转换,代码如下:var ds: TCopyDataStruct; hd: THandle;begin Msg:=’这是字符消息!!’;//同步字符消息到主UI上 ds.cbData := Length(Msg) + 1;原创 2011-12-02 08:30:17 · 380 阅读 · 0 评论 -
Delphi中慎用StrToDate函数
如果你在“控制面板-地区及语言选项”里的日期分隔符为“-”的话。Delphi代码如下:StrToDate('1985/02/09');结果报以下错误'1985-02-09' is not a valid date.同理只要StrToDate里的日期分隔符与系统设置的分隔符不一致的时候都会报出上面的错误。所以说这个函数最好不要用,可以用其它函数或想其它办法来解决这个问题。炒自小强日志!原创 2011-12-01 09:20:06 · 4135 阅读 · 0 评论 -
重写Delphi FloodFill方法
因为如果图片是二元的图形的时候,FloodFill方法不能正确的填充到不规则的区域procedure flood_fill_4(x, y:Integer;old_color, fill_color:Int64; vCanvas:TCanvas);var vCurrentColor:Int64; p : TPoint;begin p.X:=x; p.Y:=y; vCurre原创 2012-08-16 08:16:21 · 984 阅读 · 0 评论