自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 动态建立计算、参照字段的方法

建立此类字段的关键,是必须先为数据集现有的字段建立固定字段(运行时运态创建)procedure BuildCalcField;var i : Integer; Field : TField;begin DataSet.FieldDefs.Update; for i := 0 to DataSet.FieldDefs.Count -1 do begin Field := DataSet.FieldDefs.Items[i].FieldClass.Crea

2010-09-02 00:27:00 490

原创 海量数据库的查询优化及分页算法方案

<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://overblue.blogbus.com/logs/578985.html<br /><br />随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、

2010-09-02 00:26:00 297

原创 创建一个弹出时不会立即得到焦点的窗口

<br />这样创建的窗口除非用户主动点击,否则不会获得焦点。 <br />  TForm1 = class(TForm)<br />  private<br />  protected<br />    procedure SetZOrder(TopMost: Boolean); override;<br />    procedure CMShowingchanged(var Message: TMessage);  message CM_SHOWINGCHANGED;<br />  public<br

2010-09-02 00:22:00 617

原创 几则SQLServer操作技巧

<br />1)按姓氏笔画排序<br />select * from TableName order by ColumnName Collate CHINESE_PRC_STROKE_CI_AS<br />2)数据库加密函数<br />select encrypt('原始密码')<br />select pwdencrypt('原始密码')<br />select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')<br />select pwd

2010-09-02 00:21:00 351

原创 使用cxGrid对数据集进行Sort和Locate操作

<br />function GridSortColumn(View : TcxGridDBTableView; FieldName : String) : Boolean;<br />var<br />  i : Integer;<br />begin<br />  {数据排序}<br />  Result := False;<br />  for i := 0 to View.ColumnCount -1 do<br />  begin<br />    if (UpperCase(View.Colum

2010-09-02 00:11:00 642

原创 Delphi编写和调用DLL的重点

<br />使用ADO封装一个类,结果调试了我一整天。原来问题出在DLL里面有一个函数,这个函数返回TDataSet对象。所以现在总结DLL的编写要注意的地方如下:<br />1、DLL以及调用该DLL的应用程序,其第一个Uses必须为ShareMem或FastMM4。<br />2、绝对不能在DLL中创建一个对象后,返回该对象给调用的应用程序使用,否则释放对象时总会出问题(用的时候没有问题的)。<br />3、如果真的需要创建对象,则应该返回该对象的类(如:class of TComponent),然后由

2010-09-02 00:06:00 509

原创 使用TrueCrypt的命令行功能实现自动载入加密文件到指定盘符

<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://overblue.blogbus.com/logs/32569299.html<br /><br />一用上TrueCrypt就喜欢上这个软件了,由于有多个加密文件,并且希望将每个加密文件,加载到固定的盘符(如A文件载入到X盘,B文件载入到Z盘),所以研究了一下TrueCrypt的命令行。<br />我最常用的命令行,这个命令行可以将加密文件D:/ffbb.swf加入到X盘中,并且在加载文件后立即打开盘符:

2010-09-02 00:03:00 3858

原创 批量创建控件时,各优化方式比较

<br />InVisible Panel + DisableAlign这种方法的速度是最快的

2010-09-02 00:02:00 399

转载 实现最小化模态子窗口时,同时最小化应用程序

<br />procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;<br />procedure TForm2.WMSysCommand(var Message: TMessage);<br />begin<br />  if (Message.WParam = SC_ICON)<br />    then Application.Minimize<br />    else inherited;<br />end;

2010-09-01 23:49:00 400

转载 D2010 RTTI + Attribute 简单实现ORM

还记得David I 今年四月来盛大时,被问及“反射机制能再做得好一点吗?我们想放弃RTTI ”,David I 回答“这的确是需要考虑的地方,当然RTTI我们不会放弃的”。(这个白胡子的老哥哥还真很可爱,当年Borland几经起落,唯一能看得顺眼的就是David I)。 我还以为RTTI在D2010最多只是改良,炒冷饭而已。没想到,RTTI不仅能反射Public、protected、Private里的信息,还能动态执行该类里的方法,更惊奇的是,还支持Attribute。D2010 New RTTI 在某种

2010-08-15 00:19:00 412

转载 实现Ribbon风格的窗体

<br />随着office2007的兴起,微软让我们看到了Ribbon风格的窗体,现在很多软件也都开始使用Ribbon风格。<br />那么我们如果要自己开发,应当怎么做呢?本文就是为大家解开这个疑团的。<br />首先,Delphi本身并没有Ribbon风格的窗口可以直接拿来使用,而市面上很多类似于Ribbon的风格都是用截图法做出来的,那样做很麻烦,而且对于图片的控制要求非常高。这样无疑是增加了软件的成本,这里介绍的方法是使用第三方控件,DevExpress Bar 6 来完成Ribbon

2010-07-19 01:04:00 1216

原创 现有Delphi项目迁移到D2009中的注意事项

<br />随着 Embarcadero 8 月 25 号 发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - 10 月),随 着 Tiburon 全面支持 Unicode,现有的 Delphi / C++ Builder 项目要迁移到 Unicode 下应该注意些什么也 成为大家最为关心的问题。Tiburon 对 Unicode 的支持不仅仅是将原来 类型映射为 AnsiString 的 String 类型直接改 成 WideString,

2010-07-02 20:32:00 401

原创 关于返回汉字首写字母的函数浅谈?

在网上找到的返回汉字首写字母的函数,精简实用 ,至少我没找到什么问题.private string GetGbkX(string str) { if(str.CompareTo(" 吖")

2010-06-27 09:13:00 537

转载 使用Expressprinting打印DbGridEh

<br /> 在多年的程序开发中一直使用dbgridEh这个轻量级的表格组件,但对它本身所提供的打印功能却不太满意,这之前程序中的报表打印一直在用Fastreport。<br />     近来一个新的程序中,客户要求对表格的内容进行直接打印(即所见所得)。本来想直接修改dbgrideh中的打印代码,以满足要求,但看过一遍代码之后就放弃这想法了:dbgrideh的打印代码实在不敢恭维,如果实在要修改,后期的维护工作不敢保证。虽然Fastreport也能动态打印dbgrideh,但毕竟也是用程序生成模板,灵活

2010-06-15 23:56:00 961

原创 Delphi2010强化的反射

<br />http://hi.baidu.com/rarnu/blog/item/880c68810337f3d1bc3e1e9e.html<br />http://hi.baidu.com/rarnu/blog/item/29914b4a32faac2a08f7ef7f.html

2010-06-04 22:58:00 361

转载 FastReport如何使用外部自訂函數

<br />問題來源:http://delphi.ktop.com.tw/board.php?cid=30&fid=100&tid=84526<br /><br />我想由一個資料欄位記錄顏色別,去動態變更Memo字型的顏色,由於Fastreport沒有StringToColor函數,需用到Delphi函數,於是想用frxReport1UserFunction事件去觸發自訂函數。但是遇到了Can’t convert (null) to Integer錯誤。經迂迴地再包一層,試出來可用。<br /><br /

2010-06-01 21:37:00 1342

转载 FastReport中隔行显示不同的背景颜色及导出PDF文档出现中文字符

<br />今天下午,同事反映:FastReport报表显示正常,但是导出到PDF文档后,备注文字便全部显示为乱码。 <br /><br />  我先查找网上资料,得知这属於字体显示问题:像宋体,标楷体,新明细体及明细体这些属於系统默认支持的,都是可以显示为正常的。我再查看报表,发现备注字段字体为"Arial",问题显然出现在这里。 <br /><br />  我试著把字体修改为"新明细体",结果发现导出PDF文档后,一行显示正常,隔行就显示为乱码;显示为乱码的行背景色和显示正常的行不一样。 这就又涉及到隔

2010-06-01 21:33:00 5104 1

转载 Delphi2009中的几处问题

http://bbs.2ccc.com/topic.asp?topicid=319928上有网友问我D2009还有什么问题.就简单的说一下我所发现的. 上一段时间一直在用Delphi给其他软件开发一个电子地图的ActiveX控件. Delphi2009已经出到Update4了.有几个问题一直都还没解决. 1.泛型类库的一处Bug.Generics.Collectio

2010-01-12 16:22:00 759

转载 关于 Delphi 中流的使用:分割与合并文件的函数

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1:

2010-01-02 20:47:00 448

转载 汉字与 Unicode 转换

{感谢 robin([email protected])提供}//转换function Str_Gb2UniCode(text: string): String; var i,len: Integer; cur: Integer; t: String; ws: WideString;begin Result

2010-01-02 20:44:00 411

转载 简体中文与繁体中文的转换函数

function GB2Big(GB: string): string;var Len: Integer;begin Len := Length(GB); SetLength(Result, Len); LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PCh

2010-01-02 20:43:00 441

转载 《Delphi 算法与数据结构》: 关于 const

如果参数在函数中不可能修改, 一定要使用 const;不然, 编译器就会:假定先修改, 先要备份; 使用前后要增减引用计数; 还要套上 try finally.指定了 const 就可以避免以上过程从而提高效率. unit Unit1;interfaceuses Windows, Messages, SysUtils

2010-01-01 10:32:00 424

转载 《Delphi 算法与数据结构》: 数据对齐

为了加快硬件的访问速度, 编译器通常要使用"数据对齐", 譬如://下面结构中: SizeOf(TRec) = 6; 因为 b 在这里也要占 2 字节.TRec = record a: Word; b: Byte; c: Word;end;//下面结构中: SizeOf(TRec) = 16; 这里的 a 和 b 共占了 8 个

2010-01-01 10:31:00 550

转载 二分查找

function BinarySearch(List: TStringList; const str: string): Integer;var  L,R,M: Integer;  CompareResult: Integer;begin  Result := -1;  L := 0;  R := List.Count - 1;  while L   begin

2010-01-01 02:13:00 261

原创 防止程序重复执行的单元

//工程引用此单元就能防止同时出现多个实例unit MultInst;interfaceuses Windows ,Messages, SysUtils, Classes, Forms;implementationconst STR_UNIQUE = {2BE6D96E-827F-4BF9-B33E-8

2010-01-01 02:05:00 348

转载 参数的传递-out与var的区别

out与var都是传址参数。而out仅仅接受返回的值,对out的任何输入都会被忽略,其它的类似var。例如 procedure Hello(out s:String); begin s:=Hello,+ S; end; procedure TestOut; var s:String;

2010-01-01 01:37:00 906

原创 CXGrid的使用技巧

cxGrid技巧汇总2009-04-01 12:48 ========================================================================== 在主从TableView中根据主TableView得到对应的从TableView var ADetailDC: TcxGridDataCon

2009-12-28 08:55:00 629

原创 Published caused RTTI ($M+) to be added to type '%s' (Delphi)

You added a PUBLISHED section to a class that was not compiled while the {$M+}/{$TYPEINFO ON} switch was in effect, or without deriving from a class compiled with the {$M+}/{$TYPEINFO ON}

2009-12-23 18:13:00 1404

转载 delphi如何获取屏幕的分辨率

屏幕的分辨率用这个     x=GetSystemMetrics(SM_CXSCREEN)     y=GetSystemMetrics(SM_CYSCREEN)     同上。.而且获得屏幕上的像素好像应该使用screen.pixelsperinch函数int   GetDeviceCaps(                 HDC   hdc, //  

2009-12-15 09:18:00 9089

转载 动态增加字段

//ADOQuery已打开   //在数据集打开的情况下新增加一个字段  with Self.ADOQuery1 do  begin   TDataSetDesigner.Create(Self.ADOQuery1);   try    Designer.BeginDesign;    //Keep Old Field    //保留旧的字段    

2009-12-10 00:27:00 892

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除