delphi程序设计
清风古韵
QQ:109576764
展开
-
一个强大的ico,图片资源网站,http://findicons.com
http://findicons.hhttp://findicons.comttp://findicons.com原创 2013-07-02 15:51:50 · 2845 阅读 · 0 评论 -
Delphi 去掉MDI窗口的滚动条
在MDI主窗体中如下代码:Function ClientWindowProc( wnd: HWND; msg: Cardinal; wparam, lparam: Integer ): Integer; stdcall; Var pUserdata: Pointer; Begin pUserdata:= Pointer( GetWindowLong( wnd, GWL_USERDATA )); C原创 2013-06-24 13:56:32 · 1447 阅读 · 0 评论 -
只允许运行一个实例的三种方法
一、创建互斥对象在工程project1.dpr中创建互斥对象Program project1UsesWindows,Form,FrmMain in 'FrmMain.pas' {MainForm};{$R *.res}varhAppMutex: THandle; //声明互斥变量begin hAppMutex := CreateMutex(nil, false,’projectname’)原创 2013-06-24 13:56:29 · 1824 阅读 · 0 评论 -
delphi网络时间校对
网络时间校对procedure setLocalDateTime(Value: TDateTime);var lSystemDateTime: TSystemTime;begin DateTimeToSystemTime(Value, lSystemDateTime); SetLocalTime(lSystemDateTime);end;原创 2013-06-24 13:56:23 · 1678 阅读 · 0 评论 -
dbgird中导出到excel函数
函数procedure CopyDbDataToExcel(Args: array of const);variCount, jCount: Integer;XLApp: Variant;Sheet: Variant;I: Integer;beginScreen.Cursor := crHourGlass;if not VarIsEmpty(XLApp) thenbeginXLApp.Displa原创 2013-06-24 13:56:16 · 664 阅读 · 0 评论 -
delphi判断一个字符是否为汉字的最佳方法
function IsNumberic(Vaule:String):Boolean; //判断Vaule是不是数字vari:integer;beginresult:=true; //设置返回值为 是(真)Vaule:=trim(Vaule); //去空格for i:=1 to length(Vaule) do //准备循环beginif not Vaule[i] in ['0'..'9'] the原创 2013-06-24 13:55:58 · 1542 阅读 · 0 评论 -
delphi判断字符是否是汉字
//┏━━━━━━━━━━━━━━┓//┃代码着色:CodeColor v1.0 ┃//┃来自:悄然无声的 Blog ┃ //┗━━━━━━━━━━━━━━┛//判断字符是否是汉字function IsMBCSChar(const ch: Char): Boolean; begin Result := (ByteType(ch, 1) end;原创 2013-06-24 13:55:54 · 629 阅读 · 0 评论 -
Access数据库中图像的存储和显示
一、 原理介绍--流式数据的类型及其应用在Dephi中提供了TStream来支持对流式数据的操作。TStream是万流之源。但由于它是一个抽象类,故不能被直接使用;而要使用其相应的子类,如:TFileStream 、TStringStream、TMemoryStream、TBlobStream、TWinSocketStream和TOleStream。TStream提供了统一、简洁的方法来进行数据的原创 2013-06-24 13:55:44 · 2908 阅读 · 0 评论 -
DELPHI操作ACCESS数据库(两种方式噢)dataset与table
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ADODB, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3:原创 2013-06-24 13:55:42 · 1125 阅读 · 0 评论 -
delphi Access中只取时间的日期部分的函数
delphi Access中只取时间的日期部分的函数 Int(Date)原创 2013-06-24 13:55:35 · 1408 阅读 · 1 评论 -
Delphi中accesss实现树形结构查询系统
主要是要读取数据库的信息,而delphi界面是一个树形结构。例如有一个Ascess数据库:示例.MDB,内有一张表:“国家”,表的内容如下:编号 名称 01 中国 0101 吉林省 010101 长春市 010102 吉林市 0102 江苏原创 2013-06-24 13:55:33 · 962 阅读 · 0 评论 -
delphi 把窗体上的所有EDIT清空
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=0 to self.ComponentCount-1 do begin if (self.Components[i] is Tedit) then begin Tedit(Components[i]).Clear;; end; end; end;原创 2013-06-24 13:56:36 · 1993 阅读 · 0 评论 -
用sql进行表的插入数据行,空白行,删除行,修改行
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComObj;type TForm1 = class(TForm) ADOConnection1原创 2013-06-24 13:56:47 · 5896 阅读 · 0 评论 -
dxSkinsUserSkin皮肤的动态使用方法
dxSkinsUserSkinLoadFromFile(filelistbox1.FileName);//设置皮肤生效FileListBox1.Directory:='C:\Users\Administrator\Desktop\dxskin\skinfile';设置皮肤文件读取出来devexpres中设置的自带菜单无法自动换肤,需要设置一下style=lookandfeel才可以。原创 2013-07-01 14:07:44 · 1323 阅读 · 0 评论 -
完美实现tabsheet中融合窗体,不重复创建,并自动切换到已经创建的sheet
procedure TForm1.btn1Click(Sender: TObject); //功能说明 点击时,创建窗口并显示到sheet中,再并点击时如果已经有则不再创建; //如果已经有打开的则要切换成当前活动的。项目设置中取消指定窗体的自动创建 var i:Integer; begin if Application.原创 2013-06-28 10:26:14 · 1900 阅读 · 0 评论 -
Application.CreateForm中参数的问题
procedure CreateMyForm(const FormClassName, FormName : string);begin if Application.FindComponent(FormName)=nil then begin if GetClass(FormClassName) with TForm(TComponentClass(Fi转载 2013-06-28 10:24:08 · 1564 阅读 · 0 评论 -
delphi 中进度条控件常用到的属性
ProgressBar1.Max:=5000;//最大值progressbar1.Step:=1;//步长progressbar1.Position:=i;//当前进度位置。smooth=true;//光滑进度样式。原创 2013-06-24 13:56:45 · 1392 阅读 · 0 评论 -
释放资源文件中的exe文件并运行
delphi 释放资源文件中的exe文件并运行制作资源文件我就不用说了吧,下面是怎样释放并运行文件Res := TResourceStream.Create(Hinstance, 'aaa.exe', 'aaa');Res.SavetoFile('aaa.exe');winexec('aaa.exe',sw_Normal);原创 2013-06-24 13:56:25 · 1673 阅读 · 0 评论 -
自带的Indy控件实现MD5加密
在Delphi里实现MD5加密其实很容易!方法如下:在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。 示例代码 procedure TForm1.Button1Click(Sender: TObject); var MyMD5: TIdHashMessageDigest5; Digest: T4x4LongW原创 2013-06-24 13:56:18 · 784 阅读 · 0 评论 -
“千千静听”滚动标题栏,非常简单!
记得曾写过类似功能,但由于对Delphi数据类型不清楚,要花不少代码去处理中文被切半而出现乱码的尴尬。后来知道只需把字符串定义成 WideString 即可解决半个中文的问题了。实现过程:不停地剪切标题的第1个字符放到最后一位,OK。1、定义一个全局变量保存显示到标题栏的字符串varstrScroll:Widestring = 'Beyond - 海阔天空.mp3 - 千千静听 ';2、添加一个T原创 2013-06-24 13:55:56 · 672 阅读 · 0 评论 -
拼音首字符序列来实现检索功能
日常工作和生活中我们经常使用电子记事本查找个人通讯录信息,或在单位的应用程序中查询客户档案或业务资料,这个过程中往往需要输入大量的汉字信息,对于熟悉计算机的人这已经是一件头疼的事,那些不太熟悉计算机或根本不懂汉字输入的用户简直就望而生畏。作为对数据检索技术的一种新的尝试,作者探索使用汉字拼音的首字符序列作为检索关键字,这样,用户不必使用汉字,只须简单地键入要查询信息的每个汉字的拼音首字符即可。比如原创 2013-06-24 13:55:51 · 624 阅读 · 0 评论 -
Delphi ADOQuery 运用
//Delphi ADOQuery 运用with ADOQuery do begin Close; SQL.clear; SQL.add(.......); Open;//execsql end;原创 2013-06-24 13:55:24 · 544 阅读 · 0 评论 -
【转载】[转]DBGridEh 的使用
1 序言 2 DBGridEh(增强型表格组件)功能详解 3 应用实例 3.1 定制标题行 3.1.1 制作复杂标题行 3.1.2 标题行显示图片 3.1.3 自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序 3.2 定制表格底部(footer)区域的汇总统计行 3.3 定制表格数据单元外观 3.3.1 根据不同字段值显示相应的小图片 3.3.2 显示检查框(checkbox)外观 3.原创 2013-06-24 13:56:56 · 1391 阅读 · 0 评论 -
Delphi sql server 主从表例子
在sql server 的northwide 中建立主表create table sell_h( sell_id char(10),cust_name char(10) Primary key(sell_id) )gocreate table sell_h( sell_id char(10),inv char(10) ,amt float,qty float Primary key(sell_id原创 2013-06-24 13:55:31 · 812 阅读 · 0 评论 -
delphi 关于ACCESS的日期类型字段比较的一点认识
ACCESS的日期时间比较,这是个较难办的东西,从前试过几次,都不是很成功,就只能将日期字段更改为字符类型,直接进行字符比较,现在又碰到了,经过反复测试,终于找到原因,在ACCESS的日期比较上面要用到CDATE的函数会比较方便一些。具体示例如下: ADOQuery1.SQL.Text:=select * from tablename where ((cdate(PTime)>=cdate(:s3原创 2013-06-24 13:55:28 · 1053 阅读 · 0 评论 -
VB中的DoEvents命令,在Delphi中与其对应命令
Application.ProcessMessages作用防止进程阻塞,使程序能够响应消息队列中的其他事件。 实例:var i:integer;beginfor i:=0 to 500000 dobeginlabel3.Caption:=inttostr(i+1);Application.ProcessMessages;//注意这里噢,如果没有这条,系统将假死,加上这句后label3将即时显原创 2013-06-24 13:56:43 · 1386 阅读 · 0 评论 -
Delphi Excel 操作大全
(一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调用 Microsoft Ex原创 2013-06-24 13:56:34 · 793 阅读 · 0 评论 -
最精简的小写金额转大写的函数
function NumToChar(const n: Real): string; //可以到万亿,并且可以随便扩大范围const cNum: WideString = '零壹贰叁肆伍陆柒捌玖--万仟佰拾亿仟佰拾万仟佰拾元角分';cCha:array[0..1, 0..12]of string =(( '零元','零拾','零佰','零仟','零万','零亿','亿万','零零零','零零','原创 2013-06-24 13:56:27 · 665 阅读 · 0 评论 -
输入数字并且只能输入一个小数点
edit中只能输入数字并且只能输入一个小数点在edit的keypress事件加入如下代码即可if not (key in ['0'..'9','.']) then //只能输入数字及小数点,还想控制只让输入什么,自己在[]中自己填加key:=#0;if (key=’.') and (Pos(‘.’,Edit1.Text)>0) then //如果输入的是小数点,并且前面已有小数点就不让输入了key原创 2013-06-24 13:56:20 · 1036 阅读 · 0 评论 -
Edit控件的外观只有一条下划线
实现部分: 无须编写代码,只要设置一下控件属性 需要修改这些属性: BorderStyle改为bsNone BevelKind改为bkSoft BevelEdges下的项目中只将beBottom设为True,其余设为False 为了美观,最好再将Ctl3D设置为False。原创 2013-06-24 13:56:14 · 685 阅读 · 0 评论 -
DBGRIDEH 组件,速达2000中应用了该组件
DBGRIDEH 是Enlib 3.0组件包中的组件之一。Enlib 3.0组件包是一位俄国人为增强Borland系列开发工具功能而开发的第三方组件,它具有界面友好、功能强大、开发效率高、、快速制作预览/打印简单中国式报表等特点。因此,一推出即受到广大Borland程序员的青睐。目前这个版本支持Borland Delphi versions 4,5,6&7 和 Borland C++ Builde原创 2013-06-24 13:56:09 · 702 阅读 · 0 评论 -
StyleBook皮肤控件的使用
StyleBook 介绍及VICEN对皮肤控件的一些看法可以说StyleBook的出现,简直是皮肤控件厂商的噩梦,因为用户可以通过StyleBook快速切换控件样式,而不需要在去购买第三方换肤控件,对于免费并且是官方集成的StyleBook来说,优势不言而喻。因此,以后的皮肤控件除非有自己的特色,例如Raize,提供了很多系统没有的控件,并且有自己的独特的外形风格,否则很难在发展下去。我们很期待有原创 2013-06-24 13:56:07 · 1277 阅读 · 0 评论 -
Delphi 7 中DBGrid的排序
procedure TfrmTraceReport.DBGrid1TitleClick(Column: TColumn);var SortField, FieldTitle: string;begin SortField := Column.Field.FieldName; FieldTitle := Column.Title.Caption; ShowMessage(SortField原创 2013-06-24 13:56:05 · 908 阅读 · 0 评论 -
IsNumeric 判断字符串是否为数字
IsNumeric 判断字符串是否为数字,如果是数字返回true,如果包含有汉字或字符的话返回false. 由于Delphi本身没有IsNumeric这个函数,不像其它语言,这个函数相当于Java的IsNaN函数。delphi代码function IsNumeric(AStr: string): Boolean; var Value: Double; Code: Integer; begin Va原创 2013-06-24 13:56:02 · 4541 阅读 · 0 评论 -
Delphi汉字简繁体转换代码
//delphi 7 Delphi汉字简繁体转换代码unit ChineseCharactersConvert; interface uses Classes, Windows; type TGBBIG5Convert = class(TObject) public class function BIG5ToGB(BIG5Str : String): AnsiString;原创 2013-06-24 13:55:49 · 2404 阅读 · 0 评论 -
DBGridEh设置固定列,用于统计记录数和平均数、总和
DBGridEh1.FooterRowCount:=1; DBGridEh1.SumList.Active:=True; DBGridEh1.FootColor:=clInfoBk; DBGridEh1.Columns[0].Footer.ValueType := fvtStaticText; DBGr原创 2013-06-24 13:56:52 · 4096 阅读 · 0 评论 -
delphi adoquery的post和UpdateBatch
delphi adoquery的post和UpdateBatchPost是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库当ADOQuery的CursorType是ctKeySet或者ctStatic,并且LockType是ltBatchOptimistic的时候,数据DataSet是用批量更新的更新方式。这时,每条记录修改之后,用Post确认当前修改,但是确认后的原创 2013-06-24 13:55:22 · 6265 阅读 · 0 评论 -
delphi 实现数据库读取图片文件
procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程var Stream:TMemoryStream; Img: TImage;begin try Img := TImage.Create(nil); Stream := TMemoryStream.Create; // 创建内存流 Img.Picture.LoadFromFile(Fi原创 2013-06-24 13:55:26 · 2121 阅读 · 0 评论 -
DELPHI生成随机字符串
DELPHI生成随机字符串var SourceStr,str:string; i:integer;begin SourceStr:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; randomize; for i:=1 to 16 do str:=str+sourcestr[原创 2013-06-24 13:55:19 · 2577 阅读 · 0 评论 -
【转载】DELPHI操作excel(转)
DELPHI操作excel(转) (一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( ''Excel.Application'' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '原创 2013-06-24 13:56:54 · 581 阅读 · 0 评论