Delphi图片格式判断
摘要:procedure TForm1.CheckImgType(fn: string);var MyImage: TMemoryStream; Buffer: Word; i: integer;begin MyImage := TMemoryStream.Create; try MyIm...
阅读全文
posted @
2015-09-23 13:18
幻劫
阅读(1328)
推荐(0)
窗口移动事件
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) private { Private declarations } procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE; procedure WMMove(var Message: TMessage) ; ...
阅读全文
posted @
2013-11-14 13:14
幻劫
阅读(409)
推荐(0)
多层数据库应用基于Delphi DataSnap方法调用的实现(二)更新数据集
摘要:传统的数据集的读取和更新,是通过中间层的TDataSetProvider来完成的。TDataSetProvider负责从它上游的数据集读取数据生成Data包,再传给客户端;另一方面,在客户端提交更新时(TClientDataSet.ApplyUpdates),TDataSetProvider还负责解析上传的Delta包,并最终实现数据库的更新。现在在我们当前的方法调用方式下,不能再通过TDataSetProvider.ApplyUpdates来自动完成更新了,但是,我们还可以借用TDataSetProvider解析Delta数据包的功能,手动生成SQL语句来完成数据库的更新。手动更新看似复杂,
阅读全文
posted @
2013-10-26 16:34
幻劫
阅读(763)
推荐(0)
利用DataSnap的回调功能在客户端显示服务器方法的执行进度
摘要:如果DataSnap服务器方法的执行时间比较长,这时候可能需要在客户端用进度条显示当前服务器方法的执行进度。要实现这种需求,现在可以利用DataSnap的回调功能,此功能是从Delphi 2010版本开始被引入的。要实现回调,服务器方法需要暴露给客户端一个或多个类型为TDBXCallback的参数。例如:...{$METHODINFO ON} TServerMethods1 = class(TComponent) private { Private declarations } public { Public declarations } function LongTimeRunFunc(In
阅读全文
posted @
2013-10-26 16:33
幻劫
阅读(295)
推荐(0)
DupeString 与 StringOfChar 的区别
摘要:StringOfChar 是反复 “字符” 成 “字符串” 的函数;DupeString 是反复 “字符串” 成 “新字符串” 的函数;StringOfChar 来自 System 单元, 可以直接使用;DupeString 来自 StrUtils 单元, 使用时需要 uses StrUtils;如果仅仅是反复 “字符”, 当然应该用 StringOfChar , 它是用汇编代码实现的, 速度会稍好一些.
阅读全文
posted @
2013-05-04 12:29
幻劫
阅读(211)
推荐(0)
delphi CopyMemory、FillMemory、MoveMemory、ZeroMemory
摘要:CopyMemory、FillMemory、MoveMemory、ZeroMemoryCopyMemory复制内存,第一个参数为目的地址,第二个参数为源地址,第三个参数为复制数据的大小,单位字节,源内存区域不能重叠,如果重叠,可以使用MoveMemory()函数。函数原型如下:void CopyMemory( PVOID Destination, const VOID * Source, SIZE_T Length);FillMemory填充内存,将一段内存填充为同一个值,第一个参数为需要填充的内存地址,第二个参数是填充的大小,单位字节,第三个参数是填充的值,BYTE类型,FillMemory
阅读全文
posted @
2013-03-22 08:51
幻劫
阅读(1034)
推荐(0)
流的压缩和解压
摘要:1 uses 2 Zlib; 3 4 //压缩函数 5 procedure Zip(var fs: TMemoryStream); 6 var 7 cs: TCompressionStream; 8 ms: TMemoryStream; 9 num: Integer;10 begin11 if not(Assigned(fs) and (fs.Size>0)) then Exit;12 13 num := fs.Size;14 ms := TMemoryStream.Create;15 cs := TCompressionStream.Creat...
阅读全文
posted @
2013-02-26 20:33
幻劫
阅读(273)
推荐(0)
THotKey控件 delphi
摘要:在Delphi中有一个控件THotKey,可以用来设置自定义的快捷键。一般情况可以 ShortCutToText,以文件的形式将设置的快捷键保存下来,还可以用TextToShortCut,将保存成文本的键值灰复。这种方式虽然很直观,但是存在一些问题,大键盘的“Ctrl+1” 与 数字键盘的“Ctrl+1”,在THotKey控件显示是不同的,前者会显示 “Ctrl + 1” ,而后者会显示 “Ctrl + Num 1”,但是用 ShortCutToText 输出均显示“Ctrl + 1”,如果是这样那么用TextToShortCut恢复键值就会出错。对于这个问题,网上有人建议在保存键值的同时,将
阅读全文
posted @
2013-02-06 13:38
幻劫
阅读(2105)
推荐(0)
stringgrid 的一些用法
摘要:point: TPoint; Point := (sender as TStringGrid).ScreenToClient(GetMouseCursorPos); (sender as TStringGrid).MouseToCell(Point.x, Point.y, col, row);
阅读全文
posted @
2013-02-05 12:41
幻劫
阅读(245)
推荐(0)
delphi的取整函数round、trunc、ceil和floor
摘要:首先引入math单元uses math;1.Round(四舍六入五留双)功能说明:对一个实数进行四舍五入。(按照银行家算法)例:vari, j: Integer;begini := Round(1.5); // i等于2j := Round(2.5); // j等于2end;在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。例:i:= Round(11.5)//i等于12i:= Round(10.5)//i等于10这种Ro
阅读全文
posted @
2013-01-25 12:57
幻劫
阅读(167)
推荐(0)
Delphi调用SQL分页存储过程实例
摘要:下面是一个支持任意表的 SQL SERVER2000分页存储过程 1 下面是一个支持任意表的 SQL SERVER2000分页存储过程 2 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 3 4 //----分页存储过程开始创建----------------------------------------------------------------------------------------------------------- 5 IF EXISTS (SELECT name FROM sysobjects WHERE name = 'P..
阅读全文
posted @
2012-12-22 17:44
幻劫
阅读(248)
推荐(0)