08 2011 档案

摘要:/**************************************** * 函数名称:GetFoldAll(string Path) * 功能说明:获取指定文件夹下所有子目录及文件(树形) * 参 数:Path:详细路径 * 调用示列: * string strDirlist = Server.MapPath("templates"); * this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist); *************************************... 阅读全文
posted @ 2011-08-30 17:18 许明吉博客 阅读(7324) 评论(0) 推荐(0)
摘要:在Delphi中,可利用类Tcanvas的CopyRect方法实现图象的放大和缩小。其功能是将源画布上的一个指定矩形区域(简称源矩形)内的象素,拷贝到目的画布上的一个指定矩形区域(简称目的矩形)中。亦可称之为象素块复制。 由CopyMode属性确定拷贝的模式。在直接拷贝模式(cmSrcCopy)下,当源矩形与目的矩形相等时,图象不变;若源矩形大于目的矩形,图象则缩小;而当源矩形小于目的矩形时,图象便被放大(在目的矩形中扩展)。源矩形与目的矩形大小之比,决定图象的缩放倍数。CopyRect方法声明如下: Procedure CopyRect(const Dest: TRect; Canvas.. 阅读全文
posted @ 2011-08-29 11:26 许明吉博客 阅读(1233) 评论(0) 推荐(0)
摘要:Delphi的四舍五入函数作者:nick 日期:2007-11-13字体大小:小中大一、四舍五入法四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种。所谓算术舍入法,就是我们通常意义上的四舍五入法。其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍 阅读全文
posted @ 2011-08-29 11:22 许明吉博客 阅读(453) 评论(0) 推荐(0)
摘要:procedure TForm1.btn1Click(Sender: TObject);begin{$Define ss} (* 用于定义一个条件符号,一旦定义,条件符号就为真 *){$IFDEF ss} (* 对条件符号进行判断,为真则编译源文件 *) ShowMessage('ss Has defined!!'); Text := 'ss Has defined!!'; Form1.Color := clLime;{$ELSE} (* 与$IFDEF配合使用,如果$IFDEF条件为假,则只对源文件$ELSE后一小部分进行编译 *) ShowMess... 阅读全文
posted @ 2011-08-29 09:38 许明吉博客 阅读(701) 评论(0) 推荐(0)
摘要:function get_py(st : string):string;function GetPYIndexChar( hzchar:string):char;begin //的到一个汉字的拼音头个字母 case WORD(hzchar[1]) shl 8 + WORD(hzchar[2]) of $B0A1..$B0C4 : result := 'A'; $B0C5..$B2C0 : result := 'B'; $B2C1..$B4ED : result := 'C'; $B4EE..$B6E9 : result := 'D' 阅读全文
posted @ 2011-08-29 09:36 许明吉博客 阅读(613) 评论(0) 推荐(0)
摘要:以下四个函数和一个结构体声名;实现操作结构体文件的实例 /// <summary> /// 导入等值线文件 (主要是读取结构体文件信息) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bt_AsgFileLoadin_Click(object sender, EventArgs e) { string file_types = "等值线分级 阅读全文
posted @ 2011-08-26 15:59 许明吉博客 阅读(3651) 评论(0) 推荐(0)
摘要:dxdocksitedxdockpanel注意正在编辑的property 阅读全文
posted @ 2011-08-25 10:08 许明吉博客 阅读(749) 评论(0) 推荐(0)
摘要:1新手上路1.1控件简介Dock panelsDock panels是建立停靠应用的最主要部分,是在应用内部的windows局部窗口,可以放置其他的VCL控件。当一个Dock panels放在Form上后,它会自动漂浮在Form之上。如果需要停靠到窗体中,需要使用TdxDockSite控件,并且可以设置主题风格。注意,当要对Dock panels控件进行删除、复制粘贴或者其他一些操作时,务必使用控件的上下文菜单来实现。Dock panels之间可以互相停靠,停靠的结果有2种类型-tab containers和side containers,例如,可以将side containers放到一个ta 阅读全文
posted @ 2011-08-25 10:04 许明吉博客 阅读(4138) 评论(0) 推荐(0)
摘要:library ConnDBDll; { Important note about DLL memory management: ShareMem must be the first unit in your library 's USES clause AND your project 's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. Th 阅读全文
posted @ 2011-08-18 23:15 许明吉博客 阅读(463) 评论(0) 推荐(0)
摘要:http://www.duote.com/tech/2/5390_4.html#contentbody 阅读全文
posted @ 2011-08-17 23:39 许明吉博客 阅读(258) 评论(0) 推荐(0)
摘要:一、引子: 现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来。在编译应用程序时直接编译进了可执行程序里,成为应用程序的整合体。 这样做的好处是:1。由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。2。多种资源可以放在一个文件中,减少了图标、图 阅读全文
posted @ 2011-08-17 22:20 许明吉博客 阅读(844) 评论(0) 推荐(0)
摘要:Delphi2007编译的时候去掉GetVersionExA(@VI)中的@function GetWindowsVersionString: AnsiString;varVI: TOSVersionInfoA;beginVI.dwOSVersionInfoSize := SizeOf(TOSVersionInfoA);if GetVersionExA(@VI) thenwith VI doResult := Trim(Format('%d.%d build %d %s',[dwMajorVersion, dwMinorVersion, dwBuildNumber, szCSD 阅读全文
posted @ 2011-08-16 18:05 许明吉博客 阅读(3816) 评论(1) 推荐(0)
摘要:System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData) 阅读全文
posted @ 2011-08-16 16:39 许明吉博客 阅读(7901) 评论(1) 推荐(0)
摘要:RAD Studio/Delphi 2010 3615下载+破解官方下载地址:http://altd.embarcadero.com/download/RADStudio2010/delphicbuilder_2010_3615_win.iso序列号:HAAL-DANSGN-FZR5AG-M3BSJAAL-SCDKV6-ETH2SG-KBAN安装好后,将“rs2010arch.slip”WinXP复制到“C:\Documents and Settings\All Users\Application Data\Embarcadero”下(根据安装时的用户目录可能不同),WinVista或Win7 阅读全文
posted @ 2011-08-16 10:08 许明吉博客 阅读(8220) 评论(1) 推荐(0)
摘要:简明批处理教程-网管专栏,操作系统作者:网友供稿 点击:4 西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!文章页数:[1]前言最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:“授人以鱼,不如授人以渔。”因为网上好像并没有一个比较完整 阅读全文
posted @ 2011-08-15 14:38 许明吉博客 阅读(343) 评论(0) 推荐(0)
摘要:使用NAnt构建入门前言:NAnt是一项开源的项目,利用NAnt,你可以方便快捷地对自己.NET项目或解决方案进行自动构建。与VS中可视化化极强的项目和解决方案管理相比,NAnt只能命令行的方式操作,但是这并不影响Nant的流行。NAnt可以根据我们的需要,帮我们自动构建项目,比如创建文件夹,移动文件,运行指定的程序等等,这些都是VS无法办到的。 范例代码:/Files/gpcuster/NAntDemo.rar正文:如果你的机器上没有安装NAnt,请先到http://nant.sourceforge.net下载,并安装到机器上。由于NAnt是基于命令行的工具,所以,我们第一步需要配置环境变量 阅读全文
posted @ 2011-08-15 13:52 许明吉博客 阅读(1042) 评论(0) 推荐(0)
摘要:C# 自动编译 阅读全文
posted @ 2011-08-15 11:37 许明吉博客 阅读(4004) 评论(0) 推荐(0)
摘要:输入services.msc,查看Task Scheduler服务是否自动开启(默认是自动开启的)。然后写一个批处理文件:a.bat(假定存放在d盘根目录)a.bat内容:@echo offcopy d:\back\*.* e:\back打开cmd,输入at 1:00 d:\a.bat 定时运行程序OK!To问题补充:运行完关掉就可以了 阅读全文
posted @ 2011-08-15 09:43 许明吉博客 阅读(5369) 评论(0) 推荐(0)
摘要:function GetShellFolder( ID: Cardinal; Create: Boolean = False ): string;// This function is a superset of SHGetSpecialFolderPath, included with// earlier versions of the Shell. On systems preceeding those including// Shell32.dll version 5.0 (Windows Millennium Edition (Windows Me) and// Windows 200 阅读全文
posted @ 2011-08-13 22:01 许明吉博客 阅读(341) 评论(0) 推荐(0)
摘要:利用Api函数,现在我介绍两个Api函数,利用他们就可以轻松简单的获取这些特殊系统目录。 Function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer; var ppidl: PItemIDList): HResult; stdcall; Function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar): BOOL;stdcall; 其中由nFolder参数指定的就是各个特殊系统目录: CSIDL_DESKTOP:毫无疑问这就是桌面; CSIDL_DRIV 阅读全文
posted @ 2011-08-13 21:11 许明吉博客 阅读(4068) 评论(0) 推荐(0)
摘要:http://www.ajaxload.info/ 阅读全文
posted @ 2011-08-13 00:25 许明吉博客 阅读(393) 评论(0) 推荐(0)
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,IdHashMessageDigest,IdGlobal, IdHash;type TForm1 = class(TForm) btn1: TButton; OpenSwf1: TOpenDialog; edt1: TEdit; procedure btn1Click(Sender: TObject); private function StreamToMD5( 阅读全文
posted @ 2011-08-09 10:10 许明吉博客 阅读(1164) 评论(0) 推荐(0)
摘要:unit md5;INTERFACEuses Windows;type MD5Count = array[0..1] of DWORD; MD5State = array[0..3] of DWORD; MD5Block = array[0..15] of DWORD; MD5CBits = array[0..7] of byte; MD5Digest = array[0..15] of byte; MD5Buffer = array[0..63] of byte; MD5Context = record State: MD5State; Count: MD5Count; Buffer: MD 阅读全文
posted @ 2011-08-08 23:45 许明吉博客 阅读(490) 评论(0) 推荐(0)
摘要:http://www.koders.com/default.aspx?s=md5&search.x=8&search.y=8&la=Delphi&li=*&scope= 阅读全文
posted @ 2011-08-08 23:09 许明吉博客 阅读(231) 评论(0) 推荐(0)
摘要:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 阅读全文
posted @ 2011-08-08 23:05 许明吉博客 阅读(2376) 评论(0) 推荐(0)
摘要:原来写过一个计算MD5的程序,是用了一个叫MD5.pas的单元,使用起来还算简单,但还有更简单的办法,安装了indy就会有IdHashMessageDigest单元(delphi 7默认安装indy)有篇文章教怎么用IdHashMessageDigest计算字符串md5,计算文件md5却没有说,在这里补充一下,先看计算函数:function TIdHashMessageDigest4.HashValue(AStream: TStream): T4x4LongWordRecord;参数类型是一个流就可以返回T4x4LongWordRecord类型的值,使用function TIdHash128. 阅读全文
posted @ 2011-08-08 23:02 许明吉博客 阅读(12306) 评论(0) 推荐(0)
摘要:在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。 在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。 示例代码 procedure TForm1.Button1Click(Sender: TObject); var MyMD5: TIdHashMessageDigest5; Digest: T4x4LongWordRecord; begin MyMD5 := TIdHashMessageDiges 阅读全文
posted @ 2011-08-08 22:56 许明吉博客 阅读(3962) 评论(0) 推荐(0)
摘要:USES IdGlobal,IdHash;function GetMd5Str(ContenStr:string):string;var RegMd5:TIdHashMessageDigest5; RegDigest:T4x4LongWordRecord;begin RegMd5:=TIdHashMessageDigest5.Create; RegDigest:=RegMd5.HashValue(ContenStr); Result:=LowerCase(RegMd5.AsHex(RegDigest));end; 阅读全文
posted @ 2011-08-08 22:49 许明吉博客 阅读(2520) 评论(0) 推荐(1)
摘要:关于如何屏蔽Flash控件的右键菜单的问题有很多人问过,也有很多人回答,基本上都是说拦截 Application消息,或者继承一个新的控件,重载MouseDown消息,第一种解决办法,好象是简单 些,但是有个问题是:如果栏截应用程序的消息,势必会造成应用程序的所有消息都有执行这个 拦截过程,尽管可以通过条件来过滤掉其他消息,但是执行判断本身就要耗时间(尽管每次判断 一下的时间不多,但是的有消息占的时间加起来就不少了),另一种方法是继承控件,可以这样 写又麻烦,如果需要在设计期使用的话,还得重新注册。 有没有更加简单的方法呢?不需要去过滤所有的应用程序消息,又不需要重写控件? 的确还有第三种方法 阅读全文
posted @ 2011-08-07 17:37 许明吉博客 阅读(1616) 评论(0) 推荐(0)
摘要:!define ExeFile_NameStr "Doremisoft Webcam Studio"!define ExeUnit_NameStr "Doremisoft"!define PRODUCT_NAME "Webcam Studio"!define PRODUCT_VERSION "1.0.0"!define PRODUCT_WEB_SITE "http://www.doremisoft.net/webcam-studio/"!define InstallIndagateWeb &qu 阅读全文
posted @ 2011-08-06 14:55 许明吉博客 阅读(1953) 评论(1) 推荐(0)
摘要:如果检测到有老版本存在就先卸载老版本才形始新的安装过程,写了如下代码QUOTEFunction .onInit ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "InstallDir" ${If} $0 == ""; MessageBox MB_ICONINFORMATION|MB_OK "立即开始全新安装 $(^Name)!" ${else} MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "检测到系统中已安装 $ 阅读全文
posted @ 2011-08-06 14:09 许明吉博客 阅读(706) 评论(0) 推荐(0)
摘要:procedure TForm1.ShowSystemMenu(const LPt: TPoint);var LMenu: HMENU; LFlags: Cardinal; LCommand: LongWord;begin LMenu := GetSystemMenu(FParentForm.Handle, False); LFlags := TPM_RETURNCMD or GetSystemMetrics(SM_MENUDROPALIGNMENT); LCommand := LongWord(TrackPopupMenu(LMenu, LFlags, LPt.X, LPt.Y, 0, FP 阅读全文
posted @ 2011-08-05 15:21 许明吉博客 阅读(345) 评论(0) 推荐(0)
摘要:try { string strg = Application.StartupPath.ToString(); strg = strg.Substring(0, strg.LastIndexOf("\\")); strg = strg.Substring(0, strg.LastIndexOf("\\")); strg += @"\Data"; string sqltxt = @"BACKUP DATABASE db_MrCy TO Disk='" + strg + "\\" + txt 阅读全文
posted @ 2011-08-04 15:55 许明吉博客 阅读(351) 评论(0) 推荐(1)
摘要:CLRInsideOut 托管代码与非托管代码互操作,产生相关调用代码的好工具C++ 头文件转C# 的好工具http://download.csdn.net/source/2914818 阅读全文
posted @ 2011-08-04 13:43 许明吉博客 阅读(2752) 评论(0) 推荐(0)