?? globalunit.pas
字號:
unit GlobalUnit;
{**********************************************************************
******************Date:2000/01/25~2000/01/26***************************
******************by: MSJ, HGR, WXM, JHH ***************************
******************Form: Nil ***************************
******************Design: 定義系統中的各個通用過程和全局變常量*********
******************History record:
******************Other:
***********************************************************************}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls,registry, StdCtrls, DBCtrls, Mask, dbtables,Db,ADOdb,dbclient,
provider, comobj,
{$IFDEF WIN32}
BDE,
{$ELSE}
{$ENDIF}
ShellApi;
const
DosDelimSet : set of Char = ['\', ':', #0];
cbMaxFileNameLen = 64;
cbFileExtLen = cbMaxFileNameLen;
HEXdigits : array[0..$F] of Char = '0123456789ABCDEF';
NullString : string[1] = '';
cSpaceStr = ' ';
cPointStr = '.';
DoubleQuote = '"';
cbFileNameLen = cbMaxFileNameLen;
cKeyCode1=1234; //密鑰1
cKeyCode2=2345; //密鑰2
cKeyCode3=9999; //密鑰3
Type
//================================================================
//處理數據庫類的通用過程;
TSortType = (stNone, stASC, stDESC);
TAccessDB=Class
private
{Change by Masj 2000.05.25 begin}
ISRunTime:Boolean;
ErrorCode:integer;
ErrorMessage:string;
{Change by Masj 2000.05.25 end}
//change by Masj 2000.05.25
procedure ProcessError(E:Exception);
procedure ClearError;
public
Constructor Create;
destructor Destroy;Override;
//Add by Masj 2000.05.25
procedure DBSetRunState(mIsRunTime:Boolean=True);
function DBGetRunState:boolean;
function DBIsError(var mErrorCode:Word;var mErrorMessage:string):boolean;
//創建MSSQL類型別名
function CreateMSSQLAlias(AliasName,ServerName,DataBaseName,UserName:string):boolean;
//創建 PARADOX類型別名
function CreatePARADOXAlias(AliasName,Path:string):boolean;
//創建ACCESS類型別名
function CreateACCESSAlias(AliasName,Path:string):boolean;
//創建書簽
function SetToBookmark(ADataSet: TDataSet; ABookmark: TBookmark): Boolean;
end;
//================================================================
//處理系統類的通用過程;
TAccessSystem=Class
private
public
Constructor Create;
destructor Destroy;Override;
//口令加密。
function Encrypt(const S:ShortString):ShortString;
//口令解密。
function Decrypt(const S:ShortString):ShortString;
//重新啟動Windows操作系統。if Result=True then execute success,else falied.
function RestartWindows:Integer;
//獲得本機名稱
function ComputerName : String;
// 獲得系統的臨時目錄
function GetTempDirectory: String;
//獲得SQLServer服務器名稱
function GetServerName(AliasName:string):string;
//打開鏈接
procedure Link(Url:string);
//返回Windows系統路徑,引用了b_string的slash函數
function GetWinSysDir:string;
//返回Windows路徑,引用了b_string的slash函數
function GetWinDir:string;
//返回正在使用的EXE文件安裝路徑
function GetInstallDir:string;
//讀取一個注冊值
function GetRegValue(Root:integer;Key,Value:string):string;
//返回一個激活的數據集Dataset(TTabel 或 TQuery)的數據庫別名對應的DOS路徑
function GetAliasPath(DBSet:TDataset):string;
//返回一個文件的日期(使用日期格式TDataTime)
function GetFileDate(filename:string):Tdatetime;
end;
//================================================================
//處理字符串類 的通用過程;
TChrSet = set of char;
TLong =record
LowWord,
HighWord : Word;
end;
TAccessString=Class
private
public
Constructor Create;
destructor Destroy;Override;
//判斷指定串是否是數字串
function IsInt(AString: String): Boolean;
//返回字符在指定字符串中出現第n次的位置
function Pos2(SubStr,AStr:string;Inx:Integer):Integer;
//返回指定字符的重復串
function Str(Astr:string;Num:integer):string;
//返回字符串中指定字符左邊的部分
function StrLeft(SubStr,AStr:string):string;
//返回字符串中指定字符右邊的部分
function StrRight(SubStr,AStr:string):string;
//確保字符串最后一個字符中有'\'(例如目錄字符串)
function Slash(Value:string):string;
//單詞的第一個字符大寫,其它小寫
function CapFirst(Value:string):string;
//去掉HTML標識符
function StripTags(Value:string):string;
//截取從s字符串中第一個以c字符開始的l個字符
function CopyFromChar(s:string;c:char;l:integer):string;
function DigiLeftPadCh( D: longint; Ch : Char; Len : Byte) : string;
//以下為轉換byte,word,longint,pointer,為一個十六進制的字符串
function HexB(B : Byte) : string;
function HexW(W : Word) : string;
function HexL(L : LongInt) : string;
function HexPtr(P : Pointer) : string;
//以下為轉換byte,word,longint,為一個二進制的字符串
function BinaryB(B : Byte) : string;
function BinaryW(W : Word) : string;
function BinaryL(L : LongInt) : string;
//以下為轉換byte,word,longint,為一個八進制的字符串
function OctalB(B : Byte) : string;
function OctalW(W : Word) : string;
function OctalL(L : LongInt) : string;
//以下為轉換string to integer
function Str2Int(const S : string; var I : Integer) : Boolean;
//以下為轉換string to word
function Str2Word(const S : string; var I : Word) : Boolean;
//以下為轉換string to Longint
function Str2Long(const S : string; var I : LongInt) : Boolean;
//以下為轉換string to Double
function Str2Real(const S : string; var R : Double) : Boolean;
//以下為轉換long/word/integer/byte/shortint to a string
function Long2Str(L : LongInt) : string;
//返回一個用某一字符添滿的string
function CharStr(Ch : Char; Len : Byte) : string;
//返回一個字符,其右邊用長度為Len的Ch字符填充
function PadCh(const S : string; Ch : Char; Len : Byte) : string;
//返回一個字符,其右邊用長度為Len的空格字符填充
function Pad(const S : string; Len : Byte) : string;
//返回一個字符,其左邊用長度為Len的Ch字符填充
function LeftPadCh(const S : string; Ch : Char; Len : Byte) : string;
//返回一個字符,其左邊用長度為Len的空格字符填充
function LeftPad(const S : string; Len : Byte) : string;
//返回一個字符,取掉左邊的空格和控制字符
function TrimLead(const S : string) : string;
//返回一個字符,取掉右邊的空格和控制字符
function TrimTrail(const S : string) : string;
//計算一個String中的單詞(word)數,單詞的分隔符號由WordDelims指定
function WordCount(const S : string; WordDelims : TChrSet) : longint;
//計算一個String中的第N個單詞,單詞的分隔符號由WordDelims指定
function ExtractWord(N : longint; const S : string; WordDelims : TChrSet) : string;
//清除一個字符串中指定的某一字符,'abc','b'--->'ac'
function RemoveCharacter( const S: string; C: char ): string;
//清除一個字符串中多個空格,只流一個空格,'abc d' ->'abc d'
function CompactSpaces( S : string ):string;
//清除一個字符串中所有的空格
function RemoveSpaces( S : string ): string;
function DigiPadCh( D: longint; Ch : Char; Len : Byte) : string; {*}
//把一個數字轉換為右邊用空格填充為Len長字符串:123,3-->'123'
function DigiPad( D: longint; Len : Byte) : string;
//把一個數字轉換為左邊用空格填充為Len長字符串:123,,3-->' 123'
function DigiLeftPad( D: longint; Len : Byte) : string;
//返回一個pathname中的盤符
function JustDriveName( FName : string ):char;
//返回一個pathname中的文件名除取擴展名部分
function JustMainFileName( FName : string ):string;
//清除一個pathname中的'\'
function RemoveBackSlash( P : string ): string;
//返回String中左邊Len長度的字符串
function TruncLine( S : string; Len : byte ): string;
//返回String中右邊Len長度的字符串
function TruncLineRt( S : string; Len : byte ): string;
//比較兩個String是否相等,大小寫敏感
function StringsIsEqual( S1, S2 : string ): boolean;
//使一個String的第一個字符變成大寫
function FormAsName(S:string): string;
//使一個String的每一個單詞的第一個字符變成大寫
function FormAmericanString(S:string) : string;
//轉換一個String to 數字
function nxStrToInt(const S: string): longint;
//判斷一個String是否為NULL
function StrIsNull(const S: string): boolean;
//統計一個String中某一字符的個數
function CharCount(C: char; const S: string): integer;
//取一個字符串中雙引號中間的字符串
//如果沒有雙引號,則取全集
//如果有一個雙引號,則取雙引號右邊的字符串
function GetQuotedString(const S: string): string;
//用一個字符替換String中另一字符
procedure ReplaceChar(SrcChar, DstChar: char; var S: string);
//轉換十六進制的字符串為一個數字
function HexToInt(const H: string; Digits: integer; var I: longint): boolean;
//轉換integer to String
function IntToNStr(int:integer;n:integer;ch:string):string;
// 比較兩個 StringLists 的內容是否一樣
function ListIdentical(l1,l2:TStringList):Boolean;
end;
//================================================================
//處理數字類的通用過程;
TAccessNum=Class
private
public
Constructor Create;
destructor Destroy;Override;
{轉換字符串s為數字。如果不能轉換,則返回預定義的def值。}
function StrToFloatDef(const s:string;def:Extended):Extended;
{返回數組中最小值}
function MinExt(const A:array of Extended):Extended;
{返回數組中最大值}
function MaxExt(const A:array of Extended):Extended;
end;
//================================================================
//處理財務類數據庫類的通用過程;
TAccessFinance=Class
private
public
Constructor Create;
destructor Destroy;Override;
{漲價后的實價(銷售價)}
{例:SellingPrice(199.50,22.5) = 244.3875}
function SellingPrice(net:double;markup:single):double;
{返回含稅價}
{例:NetPrice(199.99,17.5) = 170.204255319149}
function NetPrice(gross:double;taxrate:single):double;
end;
//================================================================
//處理日期時間類的通用過程;
TAccessDateTime=Class
private
public
Constructor Create;
destructor Destroy;Override;
//設置系統時間日期格式
procedure SetDatetimeFormat;
//返回漢字月份名
function CMonth(y:Integer):string;
// 返回當月的天數
function DaysOfCurrntMonth:Integer;
// 返回指定日期增加(減少)指定天數的日期
function IncDay(const Date: TDateTime;NumberofDays:Integer):TdateTime;
// 返回指定年月的天數
function DaysOfMonth(const Year:word;Month:integer):Integer;
end;
//================================================================
//處理對話窗類的通用過程;
TAccessDialog=Class
private
public
Constructor Create;
destructor Destroy;Override;
//顯示確認對話窗
function ShowYesNo(Msg:string;Title:string):boolean;
//顯示確認對話窗
function ShowYesNoCancel(Msg:string;Title:string):integer;
//顯示指定類型的對話窗
function ShowMsg(Msg:string;aType:TMsgDlgType): integer;
//警告對話窗
function ShowWarning(Msg:string): integer;
//錯誤對話窗
function ShowError(Msg:string): integer;
//信息對話窗
function ShowInformation(Msg:string): integer;
//詢問對話窗
function ShowQuestion(MSG:string): integer;
end;
//================================================================
//處理窗體類的通用過程;
TAccessForm=Class
private
public
Constructor Create;
destructor Destroy;Override;
//判斷MDI子窗體是否存在
function IsExistForm(MDIForm:TForm;MDIChildFormName:string):boolean;
//在指定的MDI父窗體打開MDI子窗體
procedure OpenMDIChildForm(MDIForm:TForm;MDIChildFormName: string);
//在指定的MDI父窗體上關閉所有MDI子窗體
procedure CloseAllMDIChildForm(MDIForm:TForm;NeedFree:Boolean);
end;
//================================================================
//處理文件名類的通用過程;
TAccessFile=Class
private
public
Constructor Create;
destructor Destroy;Override;
//判斷一個PathName中是否有擴展名 *
function HasExtension(const Name : string; var DotPos : integer) : Boolean;
//返回一個帶擴展名的PathName,有Ext指定 *
function DefaultExtension(const Name, Ext : string) : string;
//強制返回一個帶擴展名的PathName,有Ext指定 *
function ForceExtension(const Name, Ext : string) : string;
//只返回一個PathName的擴展名
function JustExtension(const Name : string) : string;
//返回一個PathName中的文件名,不帶路徑
function JustFilename(const PathName : string) : string;
//返回一個PathName的路徑部分:'c:\'、'c:\dos' *
function JustPathname(const PathName : string) : string;
//給一個PathName,在末尾增加一個'\' *
function AddBackSlash(const DirName : string) : string;
end;
//================================================================
//處理其它類的通用過程;
TAccessOthers=Class
private
public
Constructor Create;
destructor Destroy;Override;
//大小寫金額轉換
function SmallToBig(small:real):string;
//格式化整數
function GetString(AInt:integer;Len:integer):string;
end;
//================================================================
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -