delphi中 基础包 SysUtils单元中文注释Word文档格式.docx

上传人:b****8 文档编号:22931467 上传时间:2023-02-06 格式:DOCX 页数:74 大小:55.82KB
下载 相关 举报
delphi中 基础包 SysUtils单元中文注释Word文档格式.docx_第1页
第1页 / 共74页
delphi中 基础包 SysUtils单元中文注释Word文档格式.docx_第2页
第2页 / 共74页
delphi中 基础包 SysUtils单元中文注释Word文档格式.docx_第3页
第3页 / 共74页
delphi中 基础包 SysUtils单元中文注释Word文档格式.docx_第4页
第4页 / 共74页
delphi中 基础包 SysUtils单元中文注释Word文档格式.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

delphi中 基础包 SysUtils单元中文注释Word文档格式.docx

《delphi中 基础包 SysUtils单元中文注释Word文档格式.docx》由会员分享,可在线阅读,更多相关《delphi中 基础包 SysUtils单元中文注释Word文档格式.docx(74页珍藏版)》请在冰豆网上搜索。

delphi中 基础包 SysUtils单元中文注释Word文档格式.docx

fmOpenWrite=O_WRONLY;

fmOpenReadWrite=O_RDWR;

//fmShareCompat不被支持

fmShareExclusive=$0010;

fmShareDenyWrite=$0020;

//fmShareDenyRead不被支持

fmShareDenyNone=$0030;

{$ENDIF}

{$以下用于MsWindows}

fmOpenRead=$0000;

fmOpenWrite=$0001;

fmOpenReadWrite=$0002;

fmShareCompat=$0000platform;

//DOS兼容模式不portable

fmShareDenyRead=$0030platform;

//只写在所有平台上都不被支持

fmShareDenyNone=$0040;

2)文件属性

faReadOnly=$00000001platform;

faHidden=$00000002platform;

faSysFile=$00000004platform;

faVolumeID=$00000008platform;

faDirectory=$00000010;

faArchive=$00000020platform;

faSymLink=$00000040platform;

faAnyFile=$0000003F;

3)时间单位

HoursPerDay=24;

每天24小时

MinsPerHour=60;

每小时60分

SecsPerMin=60;

每分钟60秒

MSecsPerSec=1000;

每秒1000毫秒

MinsPerDay=HoursPerDay*MinsPerHour;

每天的分钟数

SecsPerDay=MinsPerDay*SecsPerMin;

每天秒数

MSecsPerDay=SecsPerDay*MSecsPerSec;

每天毫秒数

DateDelta=693594;

每天介于1/1/0001和12/31/1899之间

UnixDateDelta=25569;

{介于TDateTime基数(12/31/1899)和Unixtime_t基数(1/1/1970)之间的天数}

2.类型定义(type)

TSysCharSet=setofChar;

//设置字符类型标准:

所有ANSI字符的集合

TIntegerSet=setof0..SizeOf(Integer)*8-1;

{设定整数的访问类型:

0-31的整数集合}

//类型转换

//WordRec使访问一个Word类型变量或者其他16位变量(SmallInt)的高位和低位字节变得更容易

WordRec=packedrecord

caseIntegerof

0:

(Lo,Hi:

Byte);

1:

(Bytes:

array[0..1]ofByte);

end;

LongRec使访问一个LongWord类型变量或者其它32位变量(Single)高位和低位字变得更容易。

LongRec=packedrecord

Word);

(Words:

array[0..1]ofWord);

2:

array[0..3]ofByte);

Int64Rec使访问一个Int64类型变量或者其它64位变量(Double)高位和低位字变得更容易。

Int64Rec=packedrecord

Cardinal);

(Cardinals:

array[0..1]ofCardinal);

array[0..3]ofWord);

3:

array[0..7]ofByte);

//一般数组

PByteArray=^TByteArray;

TByteArray=array[0..32767]ofByte;

PWordArray=^TWordArray;

TWordArray=array[0..16383]ofWord;

TProcedure=procedure;

//一般程序指针

TFileName=typestring;

//一般文件类型

TSearchRec=record//用于搜索记录的结构(由函数FindFirst,FindNext,和FindClose使用)

Time:

Integer;

Size:

Attr:

Name:

TFileName;

ExcludeAttr:

{$以下用于MsWindows平台}

FindHandle:

THandleplatform;

FindData:

TWin32FindDataplatform;

Mode:

mode_tplatform;

Pointerplatform;

PathOnly:

Stringplatform;

Pattern:

TFloatValue=(fvExtended,fvCurrency);

浮点类型格式化代码

TFloatFormat=(ffGeneral,ffExponent,ffFixed,ffNumber,ffCurrency);

FloatToText格式化代码

TFloatRec=packedrecord//FloatToDecimal结果的记录型结构

Exponent:

Smallint;

Negative:

Boolean;

Digits:

array[0..20]ofChar;

TTimeStamp=record//日期和时间的记录结构

从0:

00开始的的毫秒数

Date:

{从1/1/0001以后的天的加数}

TMbcsByteType=(mbSingleByte,mbLeadByte,mbTrailByte);

多字节字符集的字节类型

TSysLocale=packedrecord//本地系统信息记录类型

DefaultLCID:

PriLangID:

SubLangID:

FarEast:

MiddleEast:

TLangRec=packedrecord//被使用的语言

FName:

string;

FLCID:

LCID;

FExt:

TLanguages=class//存储系统支持的语言

private

……..

Public

…….

endplatform;

{以下用于Linux环境}

TEraRange=record

StartDate:

//从12/31/1899(TDateTime基数)的全部天数

EndDate:

//从12/31/1899(TDateTime基数)的全部天数

Direction:

Char;

Exception=class(TObject)//异常

public

……….

ExceptClass=classofException;

EAbort=class(Exception);

EHeapException=class(Exception)

AllowFree:

procedureFreeInstance;

override;

EOutOfMemory=class(EHeapException);

EInOutError=class(Exception)

ErrorCode:

{以下用于MsWindows平台}

PExceptionRecord=^TExceptionRecord;

TExceptionRecord=record

ExceptionCode:

Cardinal;

ExceptionFlags:

ExceptionRecord:

PExceptionRecord;

ExceptionAddress:

Pointer;

NumberParameters:

ExceptionInformation:

array[0..14]ofCardinal;

EExternal=class(Exception)

PExceptionRecordplatform;

LongWordplatform;

AccessAddress:

SignalNumber:

Integerplatform;

EExternalException=class(EExternal);

EIntError=class(EExternal);

EDivByZero=class(EIntError);

ERangeError=class(EIntError);

EIntOverflow=class(EIntError);

EMathError=class(EExternal);

EInvalidOp=class(EMathError);

EZeroDivide=class(EMathError);

EOverflow=class(EMathError);

EUnderflow=class(EMathError);

EInvalidPointer=class(EHeapException);

EInvalidCast=class(Exception);

EConvertError=class(Exception);

EAccessViolation=class(EExternal);

EPrivilege=class(EExternal);

EStackOverflow=class(EExternal)enddeprecated;

EControlC=class(EExternal);

EQuit=class(EExternal)endplatform;

ECodesetConversion=class(Exception)endplatform;

EVariantError=class(Exception);

EPropReadOnly=class(Exception);

EPropWriteOnly=class(Exception);

EAssertionFailed=class(Exception);

{$IFNDEFPC_MAPPED_EXCEPTIONS}

EAbstractError=class(Exception)endplatform;

EIntfCastError=class(Exception);

EInvalidContainer=class(Exception);

EInvalidInsert=class(Exception);

EPackageError=class(Exception);

EOSError=class(Exception)

DWORD;

EWin32Error=class(EOSError)

enddeprecated;

ESafecallException=class(Exception);

3.符号(Signals)

外部异常或符号由DelphiRTL默认被转换到语言异常。

在Linux下,一个Delphi应用程序安装符号处理机来诱捕原始符号并转换他们。

Delphi库默认不安装处理机。

所以你要是执行一个标准库,类似ApacheDSO,你想要将符号转换到能够捕获的语言异常,就必须人工安装符号钩,用DelphiRTL提供的接口。

对于大多数的库,安装符号处理机是恰当简便的。

在初始时间调用HookSignal(RTL_SIGDEFAULT),在关闭时调用UnhookSignal(RTL_SIGNALDEFAULT),将会为一组符号安装处理机,Delphi应用程序被RTL正常钩住。

有时候会有一些使以上的初始化不能工作的事情。

适当的设置一个符号处理机的行为,然后当整理完后恢复到以前状态。

如果你有两个库lib1和lib2,lib1安装了符号处理机,然后lib2也安装了一个,如果要恢复符号处理机则那些库就必须以适当的次序卸载,或者符号处理机能够被留在矛盾而致命的地方。

为了防止这种可能,允许你无论在何种情况下在外部库中发现这种行为都能较好的管理符号处理机,我们提供了一组4个接口来容许你在紧急事件中剪裁Delphi符号处理机挂钩/脱钩,他们是:

InquireSignal

AbandonSignalHandler

HookSignal

UnhookSignal

InquireSignal允许你看符号处理机的状态,也就是你能发现在你之下抓取它的人。

AbandonSignalHandler告诉RTL从不脱钩一个特定的符号处理机。

如果你发现一个符号处理机将要不安全的返回到以前状态就需要使用它。

例如,如果前一个符号处理机被一个后来被卸载的库安装。

HookSignal/UnhookSignal设置符号处理机映射某个信号为语言异常。

其它的看下面的InquireSignal等注释。

const

RTL_SIGINT=0;

//用户中断Userinterrupt(SIGINT)

RTL_SIGFPE=1;

//浮点异常(SIGFPE)

RTL_SIGSEGV=2;

//分割违背(SIGSEGV)

RTL_SIGILL=3;

//非法指令(SIGILL)

RTL_SIGBUS=4;

//总线Bus错误(SIGBUS)

RTL_SIGQUIT=5;

//用户中断(SIGQUIT)

RTL_SIGLAST=RTL_SIGQUIT;

//已用于内部,不能用

RTL_SIGDEFAULT=-1;

//意味着我们捕获一组符号Meansallofasetofsignalsthatthewecapture

//normally.这是当前全部进程

//signals.你不能传递这个到InquireSignal.

type

//TSignalState给定的符号处理机的状态,由InquireSignal送回。

看以下InquireSignal。

TSignalState=(ssNotHooked,ssHooked,ssOverridden);

var

如果DeferUserInterrupts设置,我们不能引发SIGINT、SIGQUIT这样的异常,而是当信号到达时设置SIGINTIssued或SIGQUITIssued,并且要忍受OS发出的信号。

这个引起GUI应用程序偶然的延迟实际信号处理直到它是安全

DeferUserInterrupts:

SIGINTIssued:

SIGQUITIssued:

MAX_PATH=4095;

//From/usr/include/linux/limits.hPATH_MAX

{空字串和null字符指针.这些常量只为向后兼容而提供。

}

EmptyStr:

string='

'

;

NullStr:

PString=@EmptyStr;

EmptyWideStr:

WideString='

NullWideStr:

PWideString=@EmptyWideStr;

Win32平台标识符,将会是下列数值之一:

VER_PLATFORM_WIN32s

VER_PLATFORM_WIN32_WINDOWS

VER_PLATFORM_WIN32_NT

Win32Platform:

Integer=0;

//数值看WINDOWS.PAS

Win32OS版本信息见TOSVersionInfo.dwMajorVersion/dwMinorVersion/dwBuildNumber

Win32MajorVersion:

Win32MinorVersion:

Win32BuildNumber:

Win32CSDVersion:

//Win32OS以外版本信息字符串见TOSVersionInfo.szCSDVersion

4.实用函数过程

1)Win32OS版本测试函数

functionCheckWin32Version(AMajor:

AMinor:

Integer=0):

GetFileVersion返回一个32位的文件的二进制版本数,它一般有助版本号和辅版本号,一般没有release或build号。

如果失败,则返回Cardinal(-1)

functionGetFileVersion(constAFileName:

string):

2)货币和日期/时间格式化选项

这些变量初始数值用Win32API中的GetLocaleInfo函数从系统注册表取得,每个变量指定常量LOCALE_XXXX的来描述这些初始值

CurrencyString–定义浮点数转换为十进制数后的需用的货币符号,初始值来自于LOCALE_SCURRENCY.

CurrencyFormat-定义浮点数转换为十进制数后的货币符号的位置和分离程度,可能的值为:

0='

$1'

1='

1$'

2='

$1'

3='

1$'

初始值来自于LOCALE_ICURRENCY.

NegCurrFormat–定义负数浮点数转换为十进制数后的货币格式,可能的值为:

($1)'

4='

(1$)'

8='

-1$'

12='

$-1'

-$1'

5='

-1$'

9='

-$1'

13='

1-$'

$-1'

6='

1-$'

10='

1$-'

14='

($1)'

$1-'

7='

1$-'

11='

$1-'

15='

(1$)'

初始值来自于LOCALE_INEGCURR.

ThousandSeparator–多于一千时的千分位分离符位于数值的左边,初始值来自于LOCALE_STHOUSAND.#0值即使有此指示符也不应当输出指示符

DecimalSeparator–用于分离一个数的小数部分的整数,其初值来自LOCALE_SDECIMAL.DecimalSeparator必须是个非零值

CurrencyDecimals–货币值中小数点右边的小数位数,初值来自LOCALE_ICURRDIGITS.

DateSeparator–分离符:

用于分离日期数值的年、月、日部分,初值来自于LOCATE_SDATE.

ShortDateFormat–用于将日期型数值转换为适合编辑的短字符串。

对日期和时间格式化字符串的完整描述,请查阅FormatDate函数。

短日期格式应当只使用日期分离符和m,mm,d,dd,yy,和yyyy格式特定。

初值来自于LOCALE_SSHORTDATE。

LongDateFormat-用于将日期型数值转换为适合显示而不是编辑的长字符串。

对日期和时间格式化字符串的完整描述,请查阅FormatD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1