随笔分类 -  delphi

摘要:1.先定义结构:type PItemCtrl = ^TItemCtrl; TItemCtrl = record viewCheckBox: TCheckBox; markCheckBox: TCheckBox; guidCheckBox: TCheckBox;end; 2.在listview的CustomDrawSubItem事件中写如下代码;var Rect: TRect; P: PItemCtrl;begin if SubItem in [1,2,3] then begin DefaultDraw:= False; // 不显示默认的文本. Rect:= Item.DisplayRect( 阅读全文
posted @ 2012-07-19 14:09 马儿快跑 阅读(5166) 评论(2) 推荐(0)
摘要:创建一个文本格式的文件(假设名为xp.manifest),内容如下: <?xml version = "1.0 " encoding = "UTF-8 " standalone = "yes "?> <assembly xmlns = "urn:schemas-microsoft-com:asm.v1 " manifestVersion = "1.0 "> <assemblyIdentity version= "1.0.0.0 " process 阅读全文
posted @ 2012-07-18 18:36 马儿快跑 阅读(529) 评论(0) 推荐(0)
摘要:delphi中combobox键值对2010-09-13 10:46:51|分类: 默认分类 |标签: |字号大中小订阅 1.添加键值对: cbb1.Items.AddObject(‘显示的文字‘, TObject(NewStr(’作为值存在的字符串‘)));2.读取选中键的值 ShowMessage(PString(cbb1.Items.Objects[cbb1.ItemIndex])^);实例:从文件中读取cbbEffect的键值对IniPath := ExtractFilePath(Application.ExeName)+'./effect.ini'; //当前工程路径 阅读全文
posted @ 2012-07-18 10:46 马儿快跑 阅读(3332) 评论(0) 推荐(0)
摘要:最为一个巩固之前有关窗体和对象的有关知识,下面就建立一个简单的MDI示范程序,这个程序的功能是打开和保存图形文件(包括位图、图标等),为了完成这个任务,我们有一个大概的计划,计划内容如下:(1)建立主窗体(一个MDI父窗体),包括菜单。(2)为【File | Open…】 和【File | Save…】菜单选项编写代码。(3)为Windows菜单上的Cascade、Tile和Arrange All选项编写代码。(4)建立MDI子窗体。(5)建立一个About对话框。(6)然后再回忆和欣赏一下这段工作。时间就是金钱,即刻就做吧 。一、创建主窗口窗体首先创建一个主窗口窗体,一个MDI应用程序的主. 阅读全文
posted @ 2012-07-13 00:52 马儿快跑 阅读(5893) 评论(0) 推荐(0)
摘要:Delphi 实现TreeView结点拖拽的实例(转)2010-09-16 21:03Delphi 实现TreeView结点拖拽的实例2010-06-04 11:15转载自 BD枫枫最终编辑 BD枫枫下面的程序片段演示了如何实现拖拽treeview构件结点的例子 {鼠标按下时执行的语句} procedure TForm1.Treeview1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin {判断左键按下并且鼠标点在一个结点上开始实现拖拽} if ( Button 阅读全文
posted @ 2012-07-12 17:43 马儿快跑 阅读(3662) 评论(0) 推荐(0)
摘要:下面是单向拖拽,如果要互相拖拽,原理是相同的。 procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin {判断左键按下并且鼠标点在一个结点上开始实现拖拽} if ( Button = mbLeft ) and ( htOnItem in Treeview1.GetHitTestInfoAt( X, Y ) ) then begin Treeview1... 阅读全文
posted @ 2012-07-12 16:56 马儿快跑 阅读(1011) 评论(0) 推荐(0)
摘要:-- 作者:贾渊-- 发布时间:2010-4-24 7:46:08-- [原创]关于原版TreeView的使用D7中原版的TreeView就很好用,但是却没有一个属性可以直接设置节点的CheckBox,经过摸索,找到一个较好的解决方案。view plaincopy to clipboardprint?const TVS_CHECKBOXES = $00000100; procedure TForm1.SetComCtrlStyle(WinCtrl: TWinControl; Value: Integer; UseStyle: Boolean); var Style: Integer; be.. 阅读全文
posted @ 2012-07-12 00:18 马儿快跑 阅读(866) 评论(0) 推荐(0)
摘要:Delphi操作XML(八) 4.1.3.TPersistentAccess类 TPersistentAccess =class(TPersistent)4.1.4.TReaderAccess类 TReaderAccess =class(TReader)4.1.5.TsdBufferedReadStream类 TsdBufferedReadStream =class(TStream) TsdBufferedReadStream是一个流的缓冲,它为另外的TStream建立读取缓冲区,并从流读取到缓冲区。此流类型只能支持读取。4.1.5.1.Create constructor Crea... 阅读全文
posted @ 2012-07-06 13:44 马儿快跑 阅读(417) 评论(0) 推荐(0)
摘要:Delphi操作XML(九) 4.1.10.TsdSurplusReader类 TsdSurplusReader = class TsdSurplusReader是一个简单的类,它可以存储少许字符,并可以在读取基础流前,返回这些字符。4.1.10.1.Surplus property Surplus:UTF8String;4.1.10.2.Create constructor Create(AStream: TStream);4.1.10.3.ReadChar function ReadChar(var Ch:AnsiChar): integer;4.1.10.4.ReadCharS... 阅读全文
posted @ 2012-07-06 13:43 马儿快跑 阅读(706) 评论(0) 推荐(0)
摘要:Delphi操作XML(六) 引自百度使用NativeXml的例子3.1.例子A:XML的装载、存储和导出 这个例子显示如何加载一个XML文档,然后以可读格式导出到一个TMemo领域。 拖放一个TEdit(Edit1),TButton(Button1)和一个TMemo到你的窗体,然后连接到下面的按钮的OnClick事件代码。填写文件名到Edit1,然后按一下按钮,您会看到在memo控件中列出XML文件的内容。procedure TForm1.Button1Click(Sender: TObject);var ADoc: TNativeXml;begin Memo1.Lines.Clear;.. 阅读全文
posted @ 2012-07-06 13:42 马儿快跑 阅读(5130) 评论(0) 推荐(0)
摘要:Delphi读写EXCEL的代码定义变量: ExcelApp:TExcelApplication;//用来连接Excel应用程序 ExcelWkbook:TExcelWorkbook;//工作薄 ExcelWksheet:TExcelWorksheet;//Excel数据表代码部分begin ExcelApp:=TExcelApplication.Create(Application);//创建Excel应用 ExcelWkbook:=TExcelWorkbook.Create(Application);//创建工作薄 ExcelWksheet:=TExcelWorksheet.Create( 阅读全文
posted @ 2012-05-18 00:39 马儿快跑 阅读(6760) 评论(0) 推荐(0)
摘要:WebBrowser1.GoHome; //到浏览器默认主页WebBrowser1.Refresh; //刷新WebBrowser1.GoBack; //后退WebBrowser1.GoForward; //前进WebBrowser1.Navigate('...'); //打开指定页面WebBrowser1.Navigate('about:blank'); //打开空页面//打开空页面, 并写入...WebBrowser1.Navigate('about:<head><title>标题</title><body& 阅读全文
posted @ 2012-05-17 14:55 马儿快跑 阅读(7906) 评论(0) 推荐(0)
摘要:说到网页采集,通常大家以为到网上偷数据,然后把到收集到的数据挂到自己网上去。其实也可以将采集到的数据做为公司的参考,或把收集的数据跟自己公司的业务做对比等。 目前网页采集多为3P代码为多(3P即ASP、PHP 、JSP)。用得最有代表的就动易科技公司BBS中新闻采集系统,和网上流传的新浪新闻采集系统等都是用ASP程序来使用,但速度从理论上来说不是很好。如果尝试用其它软件的多线程采集是不是更快?答案是肯定的。用DELPHI、VC、VB、JB都可以,PB似乎比较不好做。以下用DELPHI来解释采集网页数据。 一、 简单的新闻采集 新闻采集是最简单的,只要识别标题、副题、作者、出处、日期、新闻主体、 阅读全文
posted @ 2012-05-17 10:02 马儿快跑 阅读(8992) 评论(0) 推荐(0)
摘要:--判断[TestDB]是否存在ifexists(select1frommaster..sysdatabaseswherename='TestDB')print'TestDB存在'elseprint'TestDB不存在'--判断表[TestTb]是否存在ifexists(select*fromTestDB..syscolumnswhereid=object_id('TestDB.dbo.TestTb'))print'表TestTb存在'elseprint'表TestTb不存在'--判断[TestDB 阅读全文
posted @ 2012-04-25 19:45 马儿快跑 阅读(604) 评论(0) 推荐(0)
摘要:Delphi的四舍五入函数 一、四舍五入法四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种。所谓算术舍入法,就是我们通常意义上的四舍五入法。其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍去该位。综上所述,两种舍入法所得结果不尽一致,因此在使用 阅读全文
posted @ 2012-04-16 00:58 马儿快跑 阅读(1441) 评论(0) 推荐(0)
摘要:Delphi中控制Excel(转) 用Delphi从数据库中取得资料,然后导出到Excel中做成报表是个不错的选择,因为Excel强大的报表功能那可是没话说前提Delphi中要 uses comobj;var Excel:Variant;一、Excel操作1.创建Excel对象Excel := CreateOleObject( Excel.Application );2.显示ExcelExcel.Visible:=true;3.更改标题Excel.Caption:=Excel的标题;4.退出ExcelExcel.Quit;二、工作表操作1.添加新工作簿(刚创建的Excel对象是没有工作表的): 阅读全文
posted @ 2012-04-11 13:52 马儿快跑 阅读(1126) 评论(0) 推荐(0)
摘要:一个通用的Delphi数据导出到Excel函数(2008-05-09 21:10:07)关键字:delphi 对Excel编程,TDataSet(Tquery,TTabe)导到Excel,如何设置Excel字体、文本对齐方式,如何设置单元格边框,如何合并单元格,如何Excel打印设置,如何设置单元格为文本格式 主要功能: 1.数据集导出到Excel函数 2.自动设置列宽3.自动调节适应A4纸张4.具有打开Excel、打印预览、直接打印选项unit ExcelReport;interfaceuses SysUtils, Variants, Controls, Forms, Dialogs, Co 阅读全文
posted @ 2012-04-11 13:51 马儿快跑 阅读(10563) 评论(0) 推荐(0)
摘要:从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示菜单如下:解决办法:用delphi重新编译一个 frcc程序program frcc;{$APPTYPE CONSOLE}uses SysUtils, Classes, StrUtils;var xml: string; list: TStringList; i: Integer; fileName : string; lineWidth: integer; line: string;begin try { TODO -oUser -cConsole Main : Insert code here } if 阅读全文
posted @ 2012-04-11 01:26 马儿快跑 阅读(1044) 评论(0) 推荐(0)
摘要:这段时间发现自己写的一个线程程序有问题,服务器CPU使用率达到99%往上,然后将自己的程序翻出来看了一下,写了 一个和自己程序模式非常相同的例子:发现CPU使用量也是相当可观的;然后想到了有可能是资源释放的问题,google 了一下找到如下结论: Thread.sleep()----释放cpu,在它睡觉的这段时间里,不加入线程的运行竞争当中,当然,内存是不会释放的,因为 它没有被gc,仍旧处于可运行状态。 问题解决。 阅读全文
posted @ 2012-03-29 23:13 马儿快跑 阅读(1802) 评论(0) 推荐(0)
摘要:[转载]SQL 2008到2005和2000版本的转换1. 生成for 2000版本的数据库脚本2008 的manger studio-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例-- 右键要转到2000的库-- 任务-- 生成脚本-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库-- 勾选"为所选数据库中的所有对象编写脚本"-- 在接下来的"选择脚本选项"中, 将”编写创建数据库的脚本”设为True,找到"为服务器版本编写脚本"项, 阅读全文
posted @ 2012-03-26 14:52 马儿快跑 阅读(299) 评论(0) 推荐(0)