一些不常用的且功能相当有用的DELPHI函数


本文整理自网络,侵删。

 

1、function Comparastr (const s1,s2: string):Integer;

比较两字符串,区别大小写;

注:由于此函数操作是基于每个条件的8位序数值,所以返回的结果,如果 s1<s2 就返回小于0 如果相等就为 0 返回就大于零;

众所周知,DELPHI语言不区分大小写,但是有的时候,在设计密码登录时为加强安全性而需要区分;

funcgtion checkpassword(s1:string):boolean;

begin

Result := CompareStr(s1,'Joe')=0 ;

end;

有一个类似的函数

function SameText (const s1,s2:string):boolean;

比较两串字符串(不区分大小写),相同就返回 true 反之返回 false;

==============================================================

2、function Concat (s1[,s2,...,sn]:string):string;

将所有参数组成字符串;

通过我们使用 + 来边连接字串符,但是有的时候,Concat 可以更加的直观,特别是字符串段落数相对较多时;

var

s1,s2 : string;

ss : string;

begin

ss := '铅笔';

s1 := '你确定要出售 '+ss+'吗?’;

s2 := Concat('你确定要出售 ',ss,'吗?’);

end;

==============================================================


3、function PosEx (const SubStr,S: string;Offset:Cardinal =1): integer;

是 Pos 函数的扩展,与Pos不同的是: Offset 表示从哪一个位置开始检索 SubStr ;

所属单元:StrUtils

Showmessge(inttostr(PosEx('我','我是人我是中国人',3))) ; {结果为:7}

比如,还可以用在对 电邮地址的判断等;

==============================================================

4、function QuotedStr (const S:string):string;

用 引号 括上一段字符串;

在数据库操作的写 SQL 语句查询时,使用此函数将会少很多麻烦;

==============================================================

5、function ExtractStrings (Separators,WhiteSpace:TSysCharSet; Content:PChar; string:TStrings):Integer;

Separators : 用于指定分隔字符串的分隔符;

WhiteSpace : 分解字符串时的起始位置的字符串,可忽略;

Content : 要分解的字符串;

Strings : 存放分解后的字符列表;

示例:

procedure TForm1.btn1Click(Sender: TObject); var L : TStringList; s : string; n : Integer; begin s :='asdf,dfg,123,234'; L := TStringList.Create; try n := ExtractStrings([','],[],PChar(s),L); ShowMessageFmt('%d'+#13#10+'%s',[n,l.Text]); finally L.Free; end; end;

procedure TForm1.btn1Click(Sender: TObject); var L : TStringList; s : string; n : Integer;begin s :='asdf,dfg,123,234'; L := TStringList.Create; try n := ExtractStrings([','],[],PChar(s),L); ShowMessageFmt('%d'+#13#10+'%s',[n,l.Text]); finally L.Free; end;end;

结果:

4
asdf

dfg

123

234

==============================================================


6、function StrLComp (const str1,str2:PChar; MaxLen:Cardinal):Integer;

str1 , str2 两个字符串指针;

MaxLen 比较的长度 ;

==============================================================


7、CompareValue

function CompareValue (const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload;
function CompareValue (const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload;
function CompareValue (const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload;
function CompareValue (const A, B: Integer): TValueRelationship; overload;
function CompareValue (const A, B: Int64): TValueRelationship; overload;

uses Math

比较两个值之间的关系

如 A 小于 B 则返回 -1 ,如果相等则为 0 ,如果 A>B 则返回为 1;

==============================================================

8、procedure DivMod (Dividend: Cardinal; Divisor: Word; var Result, Remainder: Word);

Uses Math

Dividend 整型表达式,表示被除数;

Divisor 整型表达式,表示除数

Result 用于保存商;

Remainder 用于保存余数;

==============================================================

9、function Frac (const X: Extended): Extended;

返回一个实数的小数部分

==============================================================

10、function ForceDirectories (Dir: string): Boolean;

在指定的目录中,创建一个目录

var

s: string;

begin

s :='C:\a';

if ForceDirectories(s) then showmessage('成功');

end;

==============================================================

11、function CreateMessageDialog (const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn): TForm;

在开发程序时,有的消息对话框是经常使用的,为了提供效率,使用此函数来创建一个对话框,然后用 showmodal(只能使用此方法 ) 方法来显示;

var Form1: TForm1; frmmsg :TForm; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin frmmsg := CreateMessageDialog('hint',mtInformation ,[mbYes,mbNo ]) ; end; procedure TForm1.btn1Click(Sender: TObject); begin if frmmsg.ShowModal =IDYES then ShowMessage('yes'); end;

var Form1: TForm1; frmmsg :TForm; implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin frmmsg := CreateMessageDialog('hint',mtInformation ,[mbYes,mbNo ]) ;end; procedure TForm1.btn1Click(Sender: TObject);begin if frmmsg.ShowModal =IDYES then ShowMessage('yes');end;

==============================================================

12、function CreateClassID : string;
uses ComObj

生成一个 CLSID了字符串,产品一个GUID

function GetGUID: ShortString;
var
t:TGUID ;
begin
OLECheck(CreateGUID(t));
Result := CreateClassID ;
end;

==============================================================

相关阅读 >>

Delphi 秒计算分钟、小时函数

Delphi 调用相应程序打开网址

Delphi 全盘搜索指定文件

Delphi利用系统时间产生随机数的函数

Delphi 如何让程序在按了 android 的 back 键后不关闭当前 from 或者不 app 退出

Delphi idsmtp发送邮件

Delphi system.sysutils.tmarshaller 与 system.tmarshal

Delphi 中相对路径与绝对路径函数说明

Delphi 检测服务器地址是否有效

Delphi 调用批处理

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...