亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xprocs.pas

?? 發票打印程序源碼
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
function  sysTempPath:String;
procedure sysDelay(aMs: Longint);
procedure sysBeep;
function  sysColorDepth: Integer;    { 06.08.96 sb }

{$IFDEF Win32}
procedure sysSaverRunning(Active: Boolean);
{$ENDIF}

{ registry functions }

{$IFDEF Win32}
function  regReadString(aKey: hKey; const Path: String): String;
procedure regWriteString(aKey: hKey; const Path,Value: String);
procedure regDelValue(aKey: hKey; const Path: String);
function  regInfoString(const Value: String): String;
function  regCurrentUser: String;
function  regCurrentCompany: String;
procedure regWriteShellExt(const aExt,aCmd,aMenu,aExec: String);

{ The following five functions came from David W. Yutzy / Celeste Software Services
  Thanks for submitting us the methods !!
}
procedure regKeyList(aKey: HKEY; const Path:String; var aValue: TStringList);
function  regValueExist(aKey: HKEY; const Path:String):Boolean;
function  regWriteValue(aKey: HKEY; const Path: String; Value: Variant; Typ: TDataType): Boolean;
function  regReadValue(aKey:HKEY; const Path:String; Typ: TDataType): Variant;
procedure regValueList(aKey: HKEY; const Path:String; var aValue: TStringList);
{$ENDIF}

{ several functions }
function  Question(const Msg: String):Boolean;
procedure Information(const Msg: String);
function  Confirmation(const Msg: String): Word;

type
  { TRect that can be used persistent as property for components }
  TUnitConvertEvent = function (Sender: TObject;
    Value: Integer; Get: Boolean): Integer of object;

  TPersistentRect = class(TPersistent)
  private
    FRect      : TRect;
    FOnConvert : TUnitConvertEvent;
    procedure SetLeft(Value: Integer);
    procedure SetTop(Value: Integer);
    procedure SetHeight(Value: Integer);
    procedure SetWidth(Value: Integer);
    function  GetLeft: Integer;
    function  GetTop: Integer;
    function  GetHeight: Integer;
    function  GetWidth: Integer;
  public
    constructor Create;
    procedure Assign(Source: TPersistent); override;
    property Rect: TRect read FRect;
    property OnConvert: TUnitConvertEvent read FOnConvert write FOnConvert;
  published
    property Left  : Integer read GetLeft   write SetLeft;
    property Top   : Integer read GetTop    write SetTop;
    property Height: Integer read GetHeight write SetHeight;
    property Width : Integer read GetWidth  write SetWidth;
  end;

{$IFDEF Win32}
  { Persistent access of components from the registry }
  TPersistentRegistry = class(TRegistry)
  public
    function  ReadComponent(const Name: String; Owner, Parent: TComponent): TComponent;
    procedure WriteComponent(const Name: String; Component: TComponent);
  end;
{$ENDIF

  { easy access of the system metrics }
  TSystemMetric = class
  private
    FColorDepth,
    FMenuHeight,
    FCaptionHeight : Integer;
    FBorder,
    FFrame,
    FDlgFrame,
    FBitmap,
    FHScroll,
    FVScroll,
    FThumb,
    FFullScreen,
    FMin,
    FMinTrack,
    FCursor,
    FIcon,
    FDoubleClick,
    FIconSpacing : TPoint;
  protected
    constructor Create;
    procedure Update;
  public
    property MenuHeight: Integer read FMenuHeight;
    property CaptionHeight: Integer read FCaptionHeight;
    property Border: TPoint read FBorder;
    property Frame: TPoint read FFrame;
    property DlgFrame: TPoint read FDlgFrame;
    property Bitmap: TPoint read FBitmap;
    property HScroll: TPoint read FHScroll;
    property VScroll: TPoint read FVScroll;
    property Thumb: TPoint read FThumb;
    property FullScreen: TPoint read FFullScreen;
    property Min: TPoint read FMin;
    property MinTrack: TPoint read FMinTrack;
    property Cursor: TPoint read FCursor;
    property Icon: TPoint read FIcon;
    property DoubleClick: TPoint read FDoubleClick;
    property IconSpacing: TPoint read FIconSpacing;
    property ColorDepth: Integer read FColorDepth;
  end;

var
  SysMetric: TSystemMetric;

type
  TDesktopCanvas = class(TCanvas)
  private
    DC           : hDC;
  public
    constructor  Create;
    destructor   Destroy; override;
  end;

implementation

uses
  SysUtils, Controls, Forms, Consts, Dialogs;

{ bit manipulating }
function bitSet(const Value: Int_; const TheBit: TBit): Boolean;
begin
  Result:= (Value and (1 shl TheBit)) <> 0;
end;

function bitOn(const Value: Int_; const TheBit: TBit): Int_;
begin
  Result := Value or (1 shl TheBit);
end;

function bitOff(const Value: Int_; const TheBit: TBit): Int_;
begin
  Result := Value and ((1 shl TheBit) xor $FFFFFFFF);
end;

function bitToggle(const Value: Int_; const TheBit: TBit): Int_;
begin
  result := Value xor (1 shl TheBit);
end;

{ string methods }

function strHash(const S: String; LastBucket: Integer): Integer;
var
  i: Integer;
begin
  Result:=0;
  for i := 1 to Length(S) do
    Result := ((Result shl 3) xor Ord(S[i])) mod LastBucket;
end;

function strTrim(const S: String): String;
begin
  Result:=StrTrimChR(StrTrimChL(S,BLANK),BLANK);
end;

function strTrimA(const S: String): String;
begin
  Result:=StrTrimChA(S,BLANK);
end;

function strTrimChA(const S: String; C: Char): String;
var
  I               : Word;
begin
  Result:=S;
  for I:=Length(Result) downto 1 do
    if Result[I]=C then Delete(Result,I,1);
end;

function strTrimChL(const S: String; C: Char): String;
begin
  Result:=S;
  while (Length(Result)>0) and (Result[1]=C) do Delete(Result,1,1);
end;

function strTrimChR(const S: String; C: Char): String;
begin
  Result:=S;
  while (Length(Result)> 0) and (Result[Length(Result)]=C) do
    Delete(Result,Length(Result),1);
end;

function strLeft(const S: String; Len: Integer): String;
begin
  Result:=Copy(S,1,Len);
end;

function strLower(const S: String): String;
begin
  Result:=AnsiLowerCase(S);
end;

function strMake(C: Char; Len: Integer): String;
begin
  Result:=strPadChL('',C,Len);
end;

function strPadChL(const S: String; C: Char; Len: Integer): String;
begin
  Result:=S;
  while Length(Result)<Len do Result:=C+Result;
end;

function strPadChR(const S: String; C: Char; Len: Integer): String;
begin
  Result:=S;
  while Length(Result)<Len do Result:=Result+C;
end;

function strPadChC(const S: String; C: Char; Len: Integer): String;
begin
  Result:=S;
  while Length(Result)<Len do
  begin
    Result:=Result+C;
    if Length(Result)<Len then Result:=C+Result;
  end;
end;

function strPadL(const S: String; Len: Integer): String;
begin
  Result:=strPadChL(S,BLANK,Len);
end;

function strPadC(const S: String; Len: Integer): String;
begin
  Result:=strPadChC(S,BLANK,Len);
end;


function strPadR(const S: String; Len: Integer): String;
begin
  Result:=strPadChR(S,BLANK,Len);
end;

function strPadZeroL(const S: String; Len: Integer): String;
begin
  Result:=strPadChL(strTrim(S),ZERO,Len);
end;

function strCut(const S: String; Len: Integer): String;
begin
  Result:=strLeft(strPadR(S,Len),Len);
end;

function strRight(const S: String; Len: Integer): String;
begin
  if Len>=Length(S) then
    Result:=S
  else
    Result:=Copy(S,Succ(Length(S))-Len,Len);
end;

function strAddSlash(const S: String): String;
begin
  Result:=S;
  if strLastCh(Result)<>SLASH then Result:=Result+SLASH;
end;

function strDelSlash(const S: String): String;
begin
  Result:=S;
  if strLastCh(Result)=SLASH then Delete(Result,Length(Result),1);
end;

function strSpace(Len: Integer): String;
begin
  Result:=StrMake(BLANK,Len);
end;

function strToken(var S: String; Seperator: Char): String;
var
  I               : Word;
begin
  I:=Pos(Seperator,S);
  if I<>0 then
  begin
    Result:=System.Copy(S,1,I-1);
    System.Delete(S,1,I);
  end else
  begin
    Result:=S;
    S:='';
  end;
end;

function strTokenCount(S: String; Seperator: Char): Integer;
begin
  Result:=0;
  while S<>'' do begin            { 29.10.96 sb }
    StrToken(S,Seperator);
    Inc(Result);
  end;
end;

function strTokenAt(const S:String; Seperator: Char; At: Integer): String;
var
  j,i: Integer;
begin
  Result:='';
  j := 1;
  i := 0;
  while (i<=At ) and (j<=Length(S)) do
  begin
    if S[j]=Seperator then
       Inc(i)
    else if i = At then
       Result:=Result+S[j];
    Inc(j);
  end;
end;

procedure strTokenToStrings(S: String; Seperator: Char; List: TStrings);
var
  Token: String;
begin
  List.Clear;
  Token:=strToken(S,Seperator);
  while Token<>'' do
  begin
    List.Add(Token);
    Token:=strToken(S,Seperator);
  end;
end;

function strTokenFromStrings(Seperator: Char; List: TStrings): String;
var
  i: Integer;
begin
  Result:='';
  for i:=0 to List.Count-1 do
     if Result<>'' then
       Result:=Result+Seperator+List[i]
     else
       Result:=List[i];
end;

function strUpper(const S: String): String;
begin
  Result:=AnsiUpperCase(S);
end;

function strOemAnsi(const S:String):String;
begin
 {$IFDEF Win32}
  SetLength(Result,Length(S));
 {$ELSE}
  Result[0]:=Chr(Length(S));
 {$ENDIF}
  OemToAnsiBuff(@S[1],@Result[1],Length(S));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品在线视频观看| 91在线观看免费视频| 国产成人免费在线| 欧美午夜免费电影| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美精品日韩一本| 国产精品免费人成网站| 日本午夜精品一区二区三区电影| 99精品视频在线免费观看| 久久久综合视频| 狂野欧美性猛交blacked| 欧美日韩一区精品| 亚洲免费伊人电影| 播五月开心婷婷综合| 精品久久久久久久久久久久久久久 | 亚洲美腿欧美偷拍| 高清不卡在线观看av| 精品奇米国产一区二区三区| 日本一道高清亚洲日美韩| 日本精品裸体写真集在线观看| 中文字幕高清一区| 国产乱子伦一区二区三区国色天香| 5月丁香婷婷综合| 亚洲成人三级小说| 欧美日韩不卡在线| 亚洲成人你懂的| 欧美人与禽zozo性伦| 五月婷婷欧美视频| 3d动漫精品啪啪一区二区竹菊 | 色婷婷一区二区| 伊人一区二区三区| 91豆麻精品91久久久久久| 亚洲色图欧美在线| 欧美在线短视频| 亚洲国产精品久久人人爱| 欧美在线视频日韩| 日韩av一级片| 久久嫩草精品久久久精品| 国产99久久久国产精品潘金 | 久久精品一区二区三区不卡| 韩国精品在线观看| 久久久久久久久久久久久女国产乱 | 国产精品伦理一区二区| 99精品久久免费看蜜臀剧情介绍| ●精品国产综合乱码久久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲欧美综合色| 欧美午夜免费电影| 久久国产婷婷国产香蕉| 日本一区二区电影| 色综合天天综合狠狠| 性欧美大战久久久久久久久| 日韩视频免费直播| 风间由美一区二区三区在线观看| 亚洲欧美日韩一区| 日韩一区二区三区在线| 国产老妇另类xxxxx| 综合久久给合久久狠狠狠97色 | 久久精品人人爽人人爽| 91小宝寻花一区二区三区| 日韩国产一区二| 国产日韩欧美一区二区三区乱码 | 午夜成人免费电影| 久久久国产精品麻豆| 日本韩国视频一区二区| 精品伊人久久久久7777人| 亚洲图片你懂的| 精品剧情在线观看| 色婷婷精品大在线视频| 国内精品伊人久久久久影院对白| 亚洲人亚洲人成电影网站色| 日韩精品专区在线| 在线免费av一区| 国产毛片精品视频| 亚洲va国产va欧美va观看| 日本一区二区视频在线| 欧美一区二区三区免费在线看| 成人久久久精品乱码一区二区三区| 婷婷综合五月天| 国产精品电影一区二区| 欧美成人猛片aaaaaaa| 91久久奴性调教| 国产成人av福利| 日韩av电影免费观看高清完整版 | 精品精品国产高清a毛片牛牛| 色偷偷久久人人79超碰人人澡| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲午夜久久久久中文字幕久| 日本一区二区三区四区在线视频 | 日韩一区二区三区视频| 一本色道久久综合亚洲aⅴ蜜桃| 国内精品久久久久影院一蜜桃| 亚洲国产日日夜夜| 亚洲欧美日韩精品久久久久| 国产色综合久久| 久久综合久久综合久久综合| 欧美一区二区精品| 3d成人h动漫网站入口| 欧美性色欧美a在线播放| 97精品国产露脸对白| 国产91精品一区二区麻豆网站 | 性做久久久久久| 一区二区三区蜜桃| 亚洲乱码国产乱码精品精小说| 中文字幕av一区 二区| 亚洲国产cao| 国产精品精品国产色婷婷| 国产网站一区二区| 国产日韩欧美制服另类| 国产三级欧美三级日产三级99 | 亚洲国产裸拍裸体视频在线观看乱了| 国产精品久久久久7777按摩| 欧美国产97人人爽人人喊| 日本一区二区电影| 专区另类欧美日韩| 亚洲另类色综合网站| 伊人开心综合网| 洋洋成人永久网站入口| 亚洲一二三区视频在线观看| 亚洲观看高清完整版在线观看| 亚洲综合男人的天堂| 夜夜嗨av一区二区三区四季av| 亚洲v精品v日韩v欧美v专区| 亚洲成人黄色影院| 六月丁香综合在线视频| 狠狠色2019综合网| aaa国产一区| 欧美午夜精品免费| 91精品国产欧美日韩| 久久综合中文字幕| 中文字幕一区二区三区精华液 | 17c精品麻豆一区二区免费| 亚洲精品大片www| 午夜伊人狠狠久久| 国产最新精品精品你懂的| av在线播放一区二区三区| 色噜噜狠狠色综合欧洲selulu| 91精品一区二区三区久久久久久| 精品免费日韩av| 国产精品美女久久久久久久久| 亚洲午夜私人影院| 国产一区二区女| 欧美专区亚洲专区| 久久综合999| 夜夜精品浪潮av一区二区三区| 日韩影院免费视频| 成人永久aaa| 欧美欧美欧美欧美首页| 国产欧美视频一区二区| 亚洲国产一区视频| 成人午夜av在线| 6080yy午夜一二三区久久| 国产精品午夜春色av| 日韩激情一区二区| 成人免费视频视频| 日韩美一区二区三区| 一区二区三区四区不卡视频 | 日韩1区2区日韩1区2区| 成人自拍视频在线| 日韩免费看的电影| 亚洲一区二区三区四区中文字幕| 国产激情一区二区三区| 91精品综合久久久久久| 中文字幕一区二区不卡| 国内精品视频一区二区三区八戒| 日本丶国产丶欧美色综合| 久久亚洲二区三区| 日韩不卡一区二区三区| 91香蕉视频污在线| 国产午夜三级一区二区三| 免费久久精品视频| 日韩精品一区二区三区中文不卡| 中文字幕一区av| 国产成人综合亚洲网站| 日韩视频免费直播| 亚洲18色成人| 欧美天堂亚洲电影院在线播放| 亚洲欧洲性图库| 国产99久久精品| 欧美精品一区二区蜜臀亚洲| 日日摸夜夜添夜夜添亚洲女人| 色av综合在线| 亚洲欧美日韩电影| 91视频免费播放| 最新热久久免费视频| 菠萝蜜视频在线观看一区| 国产欧美精品国产国产专区 | 国产精品区一区二区三| 国产美女精品在线| 久久色.com| 国产乱码字幕精品高清av| 欧美mv日韩mv国产网站app| 另类专区欧美蜜桃臀第一页| 日韩女优毛片在线| 久久精品72免费观看| 337p日本欧洲亚洲大胆精品| 激情五月婷婷综合| 久久久激情视频| 不卡一区中文字幕| 亚洲人123区|