随笔分类 - delphi
摘要:在网上搜了一个ping函数,用到pchar(string),编译时出现这个错误,其实以前也碰到这个问题:delphi7版本中的Pcharh函数在delphi2010中使用时,编译时出现错误:E2010 Incompatible types: 'Char' and 'AnsiChar'这时可以这样使用:PAnsiChar(AnsiString(string)); 说明:在delpin中之前,Char对应的是AnsiChar,PChar对应PAnsiChar,string(未映射成老的ShortString)对应AnsiString;而在delphi2010里,对应
阅读全文
摘要:1 unit UAccessOperate; 2 3 interface 4 5 uses Windows, Sysutils, ComObj, Dialogs, ActiveX; 6 7 8 9 //修改ACCESS数据库密码 10 function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean; 11 12 //压缩与修复数据库,覆盖源文件 13 function CompactDatabase(AFileName,APassWord:string):bool...
阅读全文
摘要:{获取SCSI硬盘出厂系列号需要系统管理员权限,不支持磁盘阵列这里只取了第0个或第1个硬盘的序列号}function GetScsiSerialNumber(const i: smallint): string;typeTScsiPassThrough =recordLength: Word;ScsiStatus: Byte;PathId: Byte;TargetId: Byte;Lun: Byte;CdbLength: Byte;SenseInfoLength: Byte;DataIn: Byte;DataTransferLength: ULONG;TimeOutValue: ULONG;D
阅读全文
摘要:Delphi进制转换(二进制/十进制/十六进制) 2009-11-27 11:42:24| 分类: 计算机知识 | 标签: |字号大中小 订阅 .Delphi进制转换(二进制/十进制/十六进制)2008-08-29 10:24一、完全用API完成:..uses Windows;function IntToStr(I: integer): string;begin Str(I, Result);end;function StrToInt(S: string): integer;beginVal(S, Result, Result);end;function HexToInt(Const HexV
阅读全文
摘要:1、通过IP取MAC地址usesWinSock;Function sendarp(ipaddr:ulong;temp:dword;ulmacaddr:pointer;ulmacaddrleng:pointer) : DWord; StdCall; External 'Iphlpapi.dll' Name 'SendARP';procedure TForm1.Button1Click(Sender: TObject);varmyip:ulong;mymac:array[0..5] of byte;mymaclength:ulong;r:integer;beginm
阅读全文
摘要://结构体的比较普遍的两用法,具体还是得靠多看例子,帮助等。//1.作为一个对象结构型使用typeTclassRecord=recordrDate:string;rTime:string;end;//2.作为记录类型(数据协议解析时比较多使用,灵活方便)//首先枚举几种数据类型typeTDateType=(TFullData,TRedDate,TReadTime);typeTtextRecord=recordcasei:TDateTypeof//FullData与下面所有的变量,共享同一个内存区域,各个子类自己定义就可以了,i并无实际意义。//TtextRecord作为一个字符串的形式存在内存
阅读全文
摘要:function GetIdeNum String;type TSrbIoControl = packed record HeaderLength ULONG; Signature Array[0..7] of Char; Timeout ULONG; ControlCode ULONG; ReturnCode ULONG; Length ULONG;end;SRB_IO_CONTROL = TSrbIoControl;PSrbIoControl = ^TSrbIoControl;TIDERegs = packed record bFeaturesReg Byte; bSectorCountR
阅读全文
摘要:usesIdGlobal 十进制转换成BCD码函数 functionTForm1.inttobcd(x:Integer):string; vars,s1:string; i,j,x1:Integer; begins:=IntToStr(x); i:=Length(s); result:=''; forj:=1toidobeginx1:=StrToInt(s[j]); s1:=inttobin(x1); s1:=Copy(s1,Length(s1)-3,4); result:=result+s1; end; end;
阅读全文
摘要:最近在Delphi下写软件,需要将数据转换为BCD码和将BCD码转换为其它数据类型,从网上搜索了一下,没有发现好的函数,于是就想自定义函数来完成BCD与其它格式的数据转换功能。但最终没有动手写,先查查Delphi的帮助吧。结果一查才发现Delphi还真的直接支持BCD码的数据。现将Delphi对BCD码的支持资料大致介绍一番: 首先,Delphi支持的BCD码的数据类型名为TBCD,它的定义如下:type TBcd = packed record Precision: Byte; { 精度,1..64 } SignSpecialPlaces: Byte; { 符号位等信息的组合,按位表示,D.
阅读全文
摘要:第三方控件EHLIB中的dblookupcomboboxeh,给它的ListSource指定一个数据源,然后它有一个listField属性,要什么列就可以写在那里,然后用";"分隔开来,就可以有这样的效果了,Form1.DBLookupComboboxEh1.ListSource:=DataModule1.DataSource1;Form1.DBLookupComboboxEh1.ListField:='编号;名称';//要显示的列Form1.DBLookupComboboxEh1.KeyField:='编号';//实际的值Form1.DBL
阅读全文
摘要:Delphi - 简单10进制转2进制的函数 技术交流,DH讲解.昨晚半夜1点多,有个朋友来问这个问题.想了下,先打算偷懒,让他先用IntToHex转16进制,然后1位16进制对应4位二进制.后来想了下这样做,太不该了.于是自己随手写了个函数:我们只要对位运算熟悉就可以了,我们一位一位的去判断是0还是1就可以了.为了避免String引起的效率问题,我们直接用Array[0..31] of Char.Type TBinString = Array[ 0..31 ] Of Char ; Function IntToBin( N: Integer ): TBinString ; Const Bin.
阅读全文
摘要:TChart是一个功能强大的绘制各种数据图表的控件,使用它可以很方便的绘制出各种数据图表。下面就来详细介绍它的使用。 常用属性:AxisVisible:Bool型用于显示或隐藏图表上的四个坐标轴以及显示区域的曲线框BufferDisplay:Bool型默认为Ture.可以提高图像的显示速度消除闪烁MaxPointPerpage:默认为0,用来设置每页可以显示的点的数量,设置了该属性之后,除最后一页外,每页都是以固定的点数显示。(页:表示的是TChart的大小)SeriesList:该属性为一指针数组,指向的是TChart中的Series。获得TChart中的Serries数组,也有三种方法 .
阅读全文
摘要:procedure searchfile(path:string);//注意,path后面要有'\'; var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') and (SearchRec.Attr<>faDir
阅读全文
摘要:doc := LoadXMLData('<?xml version="1.0" encoding="GBK"?><root/>'); doc.Active := true; root := doc.DocumentElement; _node:=root.AddChild('a'); vNode:=doc.CreateNode('abc',ntCData,'xxxx'); _node.ChildNodes.Add(vNode);
阅读全文
摘要:越来越多的程序使用了多国语言切换,虽然DELPHI自带多语言包的添加和配置, 但是那种方法在切换语言时界面会出现闪烁,而且实现起来很麻烦,这里我介绍给大家的是利用INI文件来读取界面的语种文字, 用这种方法,不但简单易行,而且在切换的时候不会出现界面的闪烁。 我们从一个例子出发,看看怎么实现语言的切换。首先建立一个新工程。放置如上图的组件: MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; Label1: TLabel; Button1: TButton; CheckBox1: TCheckBox; CheckB...
阅读全文
摘要:1.创建一个窗体(TfrmSplash),放入一个TImageBox,加载一幅图片,调整好TImageBox与图片的大小,然后在其上放入一个TLabel,name=LblStatus,用于显示加载进度文字。然后将TfrmSplash设置为不自动创建。2.加入如下代码(代码很简单,就不用解释太多)un...
阅读全文
摘要:目中需要对波斯历的支持,在网上搜索了半天没有发现有javascript实现的函数。不过收获还是有的,做SourceForge.net里面找到了个Java实现,经改造后用javascript进行了封装。声明:算法的著作权属于原作者(Ghasem Kiani <ghasemkiani@yahoo.com>)!有需要的朋友可以向我要Java源代码,也可以到http://www.sourceforge.net/去下载。现提供javascript对日历转换的封装实现。Calendar.js波斯历转公历方法名称为:persianToGregorian(datetimeValue)公历转波斯历方
阅读全文
摘要:ExtractFileName(const FileName: string);举个例子:ExtractFileName(Application.ExeName);//得到当前文件名。其它相关函数还有ExtractFilePath //路径ExtractFileExt //扩展名ExtractFileDrive //盘符 //获取文件名不带后缀ChangeFileExt(TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename,'');
阅读全文
摘要://选择文件夹function SelectFolderDialog(const Handle: integer; const Caption: string; const InitFolder: WideString; var SelectedFolder: string): boolean;var BInfo: _browseinfo; Buffer: array[0..MAX_PATH] of Char; ID: IShellFolder; Eaten, Attribute: Cardinal; ItemID: PItemidlist;begin Result := False; BIn
阅读全文
摘要:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls,jpeg;typeTForm1 = class(TForm)Button1: TButton;Memo1: TMemo;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;imp
阅读全文
浙公网安备 33010602011771号