摘要: procedure inipage(fr:frxReport;frfile:string;printini:string);varPage:TfrxReportPage;IniFile:TINIFile;CDir:String;begin//fr.LoadFromFile(ExtractFilePa 阅读全文
posted @ 2012-01-05 19:26 del88 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 有时候许多报表很可能大同小异,只是有个别地方显示的不同,如报表标题,一些控件标题等等。 这样我们只需要设计一次报表,在许多地方调用同一份报表,这时候,我们可能需要在显示一份报表前,稍微改变一下样式或内容(适用于fastreport3.0): procedure TForm2.printReportB 阅读全文
posted @ 2012-01-05 19:14 del88 阅读(6) 评论(0) 推荐(0) 编辑
摘要: var PageLine: integer;//现在打印到第几行 PageMaxRow: integer=15; //空行行数 procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin PageLine := <Line> mo 阅读全文
posted @ 2012-01-05 19:10 del88 阅读(6) 评论(0) 推荐(0) 编辑
摘要: function IsRuning(const AObjectName: string): Boolean;{AObjectName='aaa.exe'} var lppe : TProcessEntry32; sshandle: Thandle; found: boolean; begin Res 阅读全文
posted @ 2012-01-05 19:09 del88 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 人民币大写金额转换函数 function MoneyToCn(ANumberic: Real): string; const s1: string = '零壹贰叁肆伍陆柒捌玖'; s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万'; function StrTran(const S, s1 阅读全文
posted @ 2012-01-05 19:08 del88 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 原本在开发一个报表插件,因为需要远程传输,因此需要序列化报表,序列化FastReport有两种方式, 1.仅序列化数据,由客户端接受到数据,并呈现报表,这种方式需要在客户端存储报表格式文件xxx.Frf, 2.序列化FastReport的结果集(即,得到数据后可以存成的frp文件),这样frf文件不 阅读全文
posted @ 2012-01-05 19:06 del88 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 随着项目的失败,这些天一直在总结失败的原因,到底是为什么? 一、技术层面 1、少用指针类型,多用类。 虽然指针类型能有效的节约内存和加快运行速度,但指针远没有类来得稳定及易用。在日常使用中,往往指针对应的是record类型,例如 1 PDataColumns = ^DataColumns; 2 Da 阅读全文
posted @ 2012-01-05 19:03 del88 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 防止同时打开多个应用程序的实例,也就是同时只有一个程序在运行,再运行同一个程序时,会自动关闭,以下代码放在项目的.dpr(项目文件)中的Application.Initialize;上面。代码如下: var hMutex: DWORD; Ret: Integer;{以上代码要放在begin..end 阅读全文
posted @ 2012-01-05 18:57 del88 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 默认DBGRID选中行的颜色为深蓝色,可以在程序中改变 在DBGRID的OnDrawColumnCell中写入 if (State=[gdSelectd..gdFocused,gdCurrent]) then begin Grid.Canvas.Font.Color :=clRed; Grid.Ca 阅读全文
posted @ 2012-01-05 17:39 del88 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 动态创建Fastreport分以下几个步骤: 1.首先清空Fastreport,定义全局变量,并加载数据集 frReport.Clear; frReport.DataSets.Add(frxDBDataset1); DataHeight :=28; DataWidth :=80; FirstTop 阅读全文
posted @ 2012-01-05 17:02 del88 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 这里的每个tab都有一个onshow事件: 窗体的onshow和容器的onshow就是让用户看到才会触发 窗体也是一个容器,所以以后不要把什么的onshow事件都写在窗体的onshow事件中 针对这样的有tab切换的可以在一个在一个tab中的onshow事件中写代码 阅读全文
posted @ 2012-01-04 14:17 del88 阅读(3) 评论(0) 推荐(0) 编辑
摘要: procedure TfrmImportCsv.ImportExcel_btnClick(Sender: TObject);var csv_file_name: string; csv_list: TStrings; I: Integer; top_seller_nick: string;begin 阅读全文
posted @ 2011-12-31 16:38 del88 阅读(12) 评论(0) 推荐(0) 编辑
摘要: procedure TForm1.Button2Click(Sender: TObject);var CsvLines, CommaStr: TStringList;begin CsvLines := TStringList.Create; CommaStr := TStringList.Creat 阅读全文
posted @ 2011-12-31 15:18 del88 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 二、dbgrideh标题排序:首先把需要排序的title.titlebutton:=trueehlib的optioneh中autosortmarking最好设为truetitelbutton事件中写:varsortstring:string;begin//进行排序with Column dobegi 阅读全文
posted @ 2011-12-29 19:16 del88 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,emailFROM te 阅读全文
posted @ 2011-12-29 19:05 del88 阅读(7) 评论(0) 推荐(0) 编辑
摘要: Enlib3.0组件包安装成功后,在系统的组件面板中会显示“enlib”组件包标签(如图1),添加DBGridEh到窗体的方法与其它组件一样。在窗体中添加该组件后,请跟我一起来实现图2的一些特殊效果,具体属性设置请参考属性表的说明。A、定制标题行 1、制作复杂标题行 标题行可设为2行以上高度,并可以 阅读全文
posted @ 2011-12-29 19:02 del88 阅读(19) 评论(0) 推荐(0) 编辑
摘要: DBGridEh导出功能详解(SaveDBGridEhToExportFile说明) 经常有用户要求数据导出,对此,我们一直用最原始的办法,打开查询,读取每个字段的数据,逐条的的写入文件。如下: procedure TForm10.prExpData(pMode:Byte);Var pFPath:S 阅读全文
posted @ 2011-12-29 10:59 del88 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 在OnDrawCell中加入如下代码: procedure TForm1.Stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);begin with Sender a 阅读全文
posted @ 2011-12-29 10:47 del88 阅读(5) 评论(0) 推荐(0) 编辑
摘要: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);vars: String;R: TRect;beginwith StringG 阅读全文
posted @ 2011-12-29 10:46 del88 阅读(13) 评论(0) 推荐(0) 编辑
摘要: uses DBGridEhImpExp; { 过程名: TfrmEmplyExport.OutToFile 作者: han 日期: 2007.08.08 参数: IADO : TADOQuery; DgEh : TDBGridEh 返回值: 无 说明: 导出查询结果到文件 }procedure Tf 阅读全文
posted @ 2011-12-29 10:14 del88 阅读(28) 评论(0) 推荐(0) 编辑
摘要: uses DBGridEhImpExp;procedure TInvoiceManager.ppmSaveSelectionClick(Sender: TObject);var ExpClass:TDBGridEhExportClass; Ext:String;begin SaveDialog1.F 阅读全文
posted @ 2011-12-29 10:11 del88 阅读(6) 评论(0) 推荐(0) 编辑
摘要: uses DBGridEhImpExp; 不要忘记引用这个 看下他实现的思路 procedure TForm1.Button3Click(Sender: TObject);var ExpClass:TDBGridEhExportClass; Ext,strDate:String;beginstrDa 阅读全文
posted @ 2011-12-29 10:09 del88 阅读(9) 评论(0) 推荐(0) 编辑
摘要: dbgrideh 本身 导出就一个函数 这个人的这种写法是实际应用过程中的很不错的写法,可以研究 修改 借鉴下 uses DBGridEhImpExp; 不要忘记引用这个 procedure DBGridehToExport(lsdbgrideh:TDBGridEh);var ExpClass: T 阅读全文
posted @ 2011-12-29 09:52 del88 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 偶然从 SysUtils 里发现了几个路径相关的函数, 以前没见过, 可能是 2010 新增的: GetLocaleDirectory(); GetLocaleFile(); LocaleDirectoryExists(); LocaleFileExists(); 应用测试: uses IOUtil 阅读全文
posted @ 2011-12-27 20:46 del88 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 根据下面我总结出两个方法经常用到: ExtractFilePath(paramstr(0)); ExtractFilePath(Application.ExeName); 输出的都是://C:\Documents and Settings\wy\My Documents\RAD Studio\Pro 阅读全文
posted @ 2011-12-27 17:00 del88 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 函数功能 Chr 将一个有序数据转换为一个ANSI字符 Ord 将一个有序类型值转换为它的序号 Round 转换一个实型值为四舍五入后的整型值 Trunc 转换一个实型值为小数截断后的整型值 Int 返回浮点数的整数部分 IntToStr 将数值转换为字符串 IntToHex 将数值转换为十六进制数 阅读全文
posted @ 2011-12-27 15:50 del88 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Chr //将一个有序数据转换为一个 ANSI 字符 Ord //将一个有序类型值转换为它的序号 Round //转换一个实型值为四舍五入后的整型值 Trunc //转换一个实型值为小数截断后的整型值 Int //返回浮点数的整数部分 IntToStr //将数值转换为字符串 IntToHex // 阅读全文
posted @ 2011-12-27 15:46 del88 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Delphi与Windows平台紧密结合,编译代码快速高效。作为一种可视化的面向对象开发工具,Delphi可以帮助程序员更轻松、更快速地编写各种 Windows应用程序。而且通过编程可以方便地调用其它语言编写的动态库或应用程序,并在不需要时关闭这些外部程序。这一点对许多编程人员非常有用,例 如,在采 阅读全文
posted @ 2011-12-27 14:54 del88 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 启动: 1、Winexec('NOTEPAD.EXE 文件名' ,SW_SHOW) 2、ShellExeCute(handle,'open','NOTEPAD.EXE 文件名',nil,nil,SW_SHOW) 注意加ShellAPI 关闭: procedure TForm1.Button21Cli 阅读全文
posted @ 2011-12-27 14:52 del88 阅读(79) 评论(0) 推荐(0) 编辑
摘要: WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi.pas单元:uses ShellAPI; 1.标准用法 ShellE 阅读全文
posted @ 2011-12-27 13:45 del88 阅读(14) 评论(0) 推荐(0) 编辑
摘要: Delphi调用外部程序WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW);WinExec( lpCmdLine: LPCSTR; {文件名和参数; 如没指定路径会按以下顺序查找: 程序目录/当前目录/System32/Wind 阅读全文
posted @ 2011-12-27 13:37 del88 阅读(9) 评论(0) 推荐(0) 编辑
摘要: WinExec, ShellExecute, CreateProcess 使用WinExec命令 ⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow); ⑵ 参数: lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行 阅读全文
posted @ 2011-12-27 13:35 del88 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 S 阅读全文
posted @ 2011-12-27 13:33 del88 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 在MFC中打开其他可执行文件常用到的方法有:WinExec、ShellExecute、CreatProcess。 1.WinExec WinExec 主要运行EXE文件,用法简单,只有两个参数,前一个指定命令路径,后一个指定窗口显示方式: UINT WinExec(LPCSTR lpCmdLine, 阅读全文
posted @ 2011-12-27 13:32 del88 阅读(4) 评论(0) 推荐(0) 编辑
摘要: vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活 阅读全文
posted @ 2011-12-27 13:31 del88 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Memo1.MaxLength := 400; 自动显示字数的代码总结: 支持 1.中英文 2.中英文状态下的符号 卢哥的软件实现不了,的原因是delphi5不支持unicode原来这就是unicode的好处,不管什么语言都统一一个字符 代码: procedure TfrmMain.SmsConte 阅读全文
posted @ 2011-12-24 20:45 del88 阅读(12) 评论(0) 推荐(0) 编辑
摘要: delphi 调试工具 妙用: 上图忙 阅读全文
posted @ 2011-12-23 18:53 del88 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 最近接了个小活让导入excel 发现和标题一样 程序 上传 上来了 DBGrid的 http://files.cnblogs.com/del88/%E5%AF%BC%E5%85%A5Excel_DBgrid%E5%81%9A%E5%AF%BC%E5%85%A5%E6%98%BE%E7%A4%BA.r 阅读全文
posted @ 2011-12-21 16:58 del88 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 在Delphi中隐藏PageControl的选项卡! 隐藏的代码如下! var i:integer;begin for i:=0 to page.PageCount -1 do begin page.Pages[i].TabVisible := false; end; 这就可以将此控件的选项卡全部隐 阅读全文
posted @ 2011-12-19 19:17 del88 阅读(17) 评论(0) 推荐(0) 编辑
摘要: PageControl1.Pages[0].TabVisible := true;PageControl1.Pages[1].TabVisible := false;注意到这里是 tabvisible而不是visible 我就是想实现像傲游那样,双击空白处便可以新增一个空白页,双击已经存在的SHEE 阅读全文
posted @ 2011-12-19 19:15 del88 阅读(4) 评论(0) 推荐(0) 编辑