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

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

?? sutils.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
字號:
unit sUtils;
{$I sDefs.inc}
{.$I-,R-}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, sConst, ExtCtrls, typinfo, ShlObj, ActiveX, ComObj;

const
  IID_IPersistFile: TGUID = (
    D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));

{ Serviced. Used for debugging}
procedure Alert; overload;
procedure Alert(s : string); overload;
procedure Alert(i : integer); overload;
function BoolToStr(b : boolean) : string;
function MakeMessage(Msg, WParam, LParam, Rsult : longint) : TMessage;
function GetCents(Value : Extended) : smallint;
{ Returns True if value placed berween i1 and i2}
function Between(Value, i1, i2 : integer) : boolean;
{ Returns percent i2 of i1}
function SumTrans(i1, i2 : integer): integer;
{ Returns max value from i1 and i2}
function Maxi(i1, i2 : integer) : integer;
{ Returns min value from i1 and i2}
function Mini(i1, i2 : integer) : integer;
{ Set value to Minvalue or Maxvalue if it not placed between them}
function LimitIt(Value, MinValue, MaxValue : integer): integer;
{ Change values of i1 and i2}
procedure Changei(var i1, i2 : integer);
{ Returns True if Value is valid float}
function IsValidFloat(const Value: string; var RetValue: Extended): Boolean;
{ Returns formated string, represented float value}
function FormatFloatStr(const S: string; Thousands: Boolean): string;

{ Offset point}
function OffsetPoint(p: TPoint; x,y : integer): TPoint;
{ Returns width of rectangle}
function WidthOf(r: TRect): integer;
{ Returns height of rectangle}
function HeightOf(r: TRect): integer;
{ Returns string s1 if L, else return s2}
function iff(L : boolean; s1, s2 : string) : string;
{ Returns TObject o1 if L, else return o2}
function iffo(L : boolean; o1, o2 : TObject) : TObject;
{ Returns integer o1 if L, else return o2}
function iffi(L : boolean; i1, i2 : integer) : integer;
{ Returns True if SubString included in s. If CaseInsensitive then function non-Casesensitive}
function SubStrInclude(SubString, s : string; CaseInsensitive : boolean) : boolean;
{ Corrects string for SQL-operations}
function CorrectString(s : string) : string;
{ Returns position of word number N in string S. WordDelims - chars, word delimiters}
function WordPosition(const N: Integer; const S: string; const WordDelims: TSysCharSet): Integer;
{ Returns word number N from string S. WordDelims - chars, word delimiters}
function ExtractWord(N: Integer; const S: string; const WordDelims: TSysCharSet): string;
{ Returns count of words in string S. WordDelims - chars, word delimiters}
function WordCount(const S: string; const WordDelims: TSysCharSet): Integer;
{ Returns number of word W in string S. WordDelims - chars, word delimiters}
function GetWordNumber(const W, S: string; const WordDelims: TSysCharSet): integer;
{ Returns string with proper cases of first characters in words. WordDelims - chars, word delimiters}
function AnsiProperCase(const S: string; const WordDelims: TSysCharSet): string;
{ Returns string with length N, filled by character C}
function MakeStr(C: Char; N: Integer): string;
{ Returns string with deleted spaces}
function DelRSpace(const S: string): string;
{ Returns string with deleted leading spaces}
function DelBSpace(const S: string): string;
{ Returns string with deleted last spaces}
function DelESpace(const S: string): string;
{ Returns string with deleted chars Chr}
function DelChars(const S: string; Chr: Char): string;
{ Replace substring Srch in string S by substring Replace}
function ReplaceStr(const S, Srch, Replace: string): string;
{ Returns substring from position Pos}
function ExtractSubstr(const S: string; var Pos: Integer; const Delims: TSysCharSet): string;
{ Returns False if S include EmptyChars only}
function IsEmptyStr(const S: string; const EmptyChars: TSysCharSet): Boolean;
{ Add N chars C to string S}
function AddChar(C: Char; const S: string; N: Integer): string;
{ Convert OEM string OemStr to Ansi string}
function OemToAnsiStr(const OemStr: string): string;
{ Returns True if word W included in string S. WordDelims - chars, word delimiters}
function IsWordPresent(const W, S: string; const WordDelims: TSysCharSet): Boolean;

{ If S - is 'FirstName SecondName LastName', then returns it as 'FirstName S. L.'}
function FIOLongToShort(S:string):string;
{ Returns real value from string with validation}
function StrToFloatR (Field1 : string) : real;
{ Rounds value F up to two chars after a point}
function CurRound(f : real) : real;
{ Returns SQL-string without definition 'WHERE', 'ORDER BY' and 'GROUP BY'}
function GetSelectFromSQL(s : string) : string;

{ Request for item deleting}
function DeleteRequest:boolean;
{ Qustom request}
function CustomRequest(s : string):boolean;
{ Show message S with icon mtWarning}
procedure ShowWarning(S:string);
{ Show message S with icon mtError}
procedure ShowError(s:string);
{ Delay in milliseconds}
procedure Delay(MSecs: Integer);

function GetAppName : string;
function GetAppPath : string;
{ Returns True if FileName is valid}
function ValidFileName(const FileName: string): Boolean;
{ Returns True if directory Name is exists}
function DirExists(Name: string): Boolean;
{ Returns long file name from short}
function ShortToLongFileName(const ShortName: string): string;
{ Returns long path from short}
function ShortToLongPath(const ShortName: string): string;
{ Returns short file name from long}
function LongToShortFileName(const LongName: string): string;
{ Returns short path from long}
function LongToShortPath(const LongName: string): string;
{ Returns True if Delphi IDE is running}
function IsIDERunning: boolean;
procedure CopyFile(const FileName, DestName: string;
  ProgressControl, LabelControlFrom, LabelControlTo: TControl);
procedure CopyFileEx(const FileName, DestName: string;
  OverwriteReadOnly : Boolean; ProgressControl, LabelControlFrom, LabelControlTo: TControl);
function GetFileSize(const FileName: string): Longint;
function ClearDir(const Path: string; Delete: Boolean): Boolean;
function NormalDir(const DirName: string): string;
procedure CopyFiles(SrcDir, DstDir, Masks : string; ProgressControl, LabelControlFrom, LabelControlTo: TControl);
procedure CreateLink(const FileName, DisplayName: string; Folder: Integer);

implementation

uses stdCtrls, sStoreUtils {$IFNDEF ALITE}, sGauge, sCustomComboBox{$ENDIF};

function IsDebuggerPresent(): Boolean; external 'kernel32.dll';

procedure Alert;
begin
  ShowWarning('Alert!');
end;

procedure Alert(s : string); overload;
begin
  ShowWarning(s);
end;

procedure Alert(i : integer); overload;
begin
  ShowWarning(IntToStr(i));
//  WriteIniStr(timeToStr(Time), 'Alert', IntToStr(i), 'c:\aaaa.txt');
end;

function BoolToStr(b : boolean) : string;
begin
  if b then Result := 'True' else Result := 'False';
end;

function MakeMessage(Msg, WParam, LParam, Rsult : longint) : TMessage;
begin
  Result.Msg := Msg;
  Result.WParam := WParam;
  Result.WParam := LParam;
  Result.Result := RSult;
end;

function GetCents(Value : Extended) : smallint;
var
  e : extended;
begin
  e := Value;
  Result := Round(Frac(e) * 100);
end;

function iff(L : boolean; s1, s2 : string) : string;
begin
  if l then Result := s1 else Result := s2;
end;
{!
function iff(L : boolean; s1, s2 : integer) : integer; overload;
begin
  if l then Result := s1 else Result := s2;
end;

function iff(L : boolean; s1, s2 : real) : real; overload;
begin
  if l then Result := s1 else Result := s2;
end;
}
function iffo(L : boolean; o1, o2 : TObject) : TObject;
begin
  if l then Result := o1 else Result := o2;
end;

function iffi(L : boolean; i1, i2 : integer) : integer;
begin
  if l then Result := i1 else Result := i2;
end;

function Between(Value, i1, i2 : integer) : boolean;
begin
  Result := (Value >= i1) and (Value <= i2);
end;

function SumTrans(i1, i2 : integer): integer;
begin
  Result := Round(i2 + (100 - i2) * (i1 / 100));
end;

function Maxi(i1, i2 : integer) : integer;
begin
  if i1 > i2 then Result := i1 else Result := i2;
end;

function Mini(i1, i2 : integer) : integer;
begin
  if i1 > i2 then Result := i2 else Result := i1;
end;

function LimitIt(Value, MinValue, MaxValue : integer): integer;
begin
  if Value < MinValue then Result := MinValue
  else if Value > MaxValue then Result := MaxValue
  else Result := Value;
end;

procedure Changei(var i1, i2 : integer);
var
  i : integer;
begin
  i := i2;
  i2 := i1;
  i1 := i;
end;

function IsValidFloat(const Value: string; var RetValue: Extended): Boolean;
var
  I: Integer;
  Buffer: array[0..63] of Char;
begin
  Result := False;
  for I := 1 to Length(Value) do
    if not (Value[I] in [DecimalSeparator, '-', '+', '0'..'9', 'e', 'E']) then
      Exit;
  Result := TextToFloat(StrPLCopy(Buffer, Value,
    SizeOf(Buffer) - 1), RetValue {$IFDEF WIN32}, fvExtended {$ENDIF});
end;

function FormatFloatStr(const S: string; Thousands: Boolean): string;
var
  I, MaxSym, MinSym, Group: Integer;
  IsSign: Boolean;
begin
  Result := '';
  MaxSym := Length(S);
  IsSign := (MaxSym > 0) and (S[1] in ['-', '+']);
  if IsSign then MinSym := 2
  else MinSym := 1;
  I := Pos(DecimalSeparator, S);
  if I > 0 then MaxSym := I - 1;
  I := Pos('E', AnsiUpperCase(S));
  if I > 0 then MaxSym := Mini(I - 1, MaxSym);
  Result := Copy(S, MaxSym + 1, MaxInt);
  Group := 0;
  for I := MaxSym downto MinSym do begin
    Result := S[I] + Result;
    Inc(Group);
    if (Group = 3) and Thousands and (I > MinSym) then begin
      Group := 0;
      Result := ThousandSeparator + Result;
    end;
  end;
  if IsSign then Result := S[1] + Result;
end;

function OffsetPoint(p: TPoint; x,y : integer): TPoint;
begin
  Result := p;
  inc(Result.x, x);
  inc(Result.y, y);
end;

function WidthOf(r: TRect): integer;
begin
  Result := r.Right - r.Left;
end;

function HeightOf(r: TRect): integer;
begin
  Result := r.Bottom - r.Top;
end;

function SubStrInclude(SubString, s : string; CaseInsensitive : boolean) : boolean;
begin
  if CaseInsensitive then begin
    Result := pos(UpperCase(SubString), UpperCase(s)) > 0;
  end
  else begin
    Result := pos(SubString, s) > 0;
  end;
end;

function CorrectString(s : string) : string;
begin
//  s := DelSpace1(s);
  Result := s;
  Result := ReplaceStr(Result, '''', '`');
  Result := ReplaceStr(Result, '

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91精品91久久久的内涵| 美腿丝袜亚洲三区| 久久精品免费在线观看| 欧美成人vr18sexvr| 日韩一区二区三区精品视频| 5566中文字幕一区二区电影| 欧美丰满嫩嫩电影| 欧美成人一区二区三区| 日韩欧美一区二区视频| 久久嫩草精品久久久久| 久久精品亚洲国产奇米99| 日本一区二区三区四区在线视频| 中文字幕亚洲一区二区av在线| 国产剧情av麻豆香蕉精品| 国产麻豆精品久久一二三| jiyouzz国产精品久久| 91网站视频在线观看| 欧美少妇xxx| 欧美mv日韩mv| 一区二区中文字幕在线| 亚洲va国产天堂va久久en| 日韩av在线播放中文字幕| 国内精品国产三级国产a久久| 亚洲日穴在线视频| 香蕉影视欧美成人| 国产真实精品久久二三区| 色综合久久综合中文综合网| 91精品国产91综合久久蜜臀| 国产精品免费视频观看| 国产乱人伦偷精品视频免下载| 亚洲欧美经典视频| 美女精品自拍一二三四| 99久久国产综合色|国产精品| 美腿丝袜亚洲综合| 91一区二区三区在线观看| 欧美日韩国产一区| 国产精品毛片久久久久久| 视频一区中文字幕国产| 99久久久国产精品| 亚洲精品一区二区三区四区高清 | 久久亚洲捆绑美女| 国产精品动漫网站| 精品系列免费在线观看| 欧美在线免费播放| 国产调教视频一区| 美脚の诱脚舐め脚责91| 欧美日韩一区国产| 亚洲激情图片小说视频| 国产99久久久国产精品潘金网站| 国产在线国偷精品产拍免费yy| 久久精品99久久久| 欧美日韩激情一区二区三区| 国产精品欧美极品| 国产精品99久久久久久有的能看| 久久99久久99精品免视看婷婷| 蜜桃在线一区二区三区| 在线观看视频91| 国产精品久久影院| 国产精品亚洲专一区二区三区| 精品一区二区免费看| 欧美日韩一区二区三区在线| 亚洲素人一区二区| 99精品在线免费| 久久精品综合网| 国产老妇另类xxxxx| 精品国产精品一区二区夜夜嗨| 精品国产青草久久久久福利| 午夜影视日本亚洲欧洲精品| 在线观看日韩精品| 一区二区国产视频| 欧美日韩国产一区二区三区地区| 欧美一级精品大片| 蜜桃av一区二区三区电影| 欧美一级艳片视频免费观看| 日韩av中文在线观看| 日韩一区二区视频在线观看| 日本中文一区二区三区| 91精品麻豆日日躁夜夜躁| 日韩激情视频网站| 日韩女优制服丝袜电影| 国产一区91精品张津瑜| 久久影院视频免费| 波多野结衣中文字幕一区二区三区| 欧美日韩一本到| 日日夜夜精品视频免费| 日韩精品一区二区三区三区免费 | 激情文学综合网| 亚洲一区二区视频在线| 91亚洲国产成人精品一区二三| 欧美性色黄大片| 日韩电影免费在线观看网站| 26uuu亚洲| 波多野结衣精品在线| 午夜日韩在线电影| 久久综合色综合88| 日本精品一级二级| 青椒成人免费视频| 国产精品久久久久aaaa| 精品视频999| 久久精品国产一区二区三区免费看| 色视频成人在线观看免| 性久久久久久久久| 国产午夜三级一区二区三| 一本大道久久a久久精品综合| xnxx国产精品| 91久久精品国产91性色tv| 日韩高清一级片| 国产精品麻豆一区二区| 51精品视频一区二区三区| 国产一区二区免费在线| 亚洲一二三四在线| 久久久www成人免费毛片麻豆 | 91精品欧美综合在线观看最新| 国产欧美视频一区二区| 欧美性一二三区| 国产精品一区二区三区网站| 亚洲www啪成人一区二区麻豆| www.亚洲色图.com| 日产国产欧美视频一区精品| 中文字幕一区二区不卡| 精品免费视频.| 欧美日本国产视频| 9久草视频在线视频精品| 久久99久国产精品黄毛片色诱| 欧美卡1卡2卡| 一本色道久久加勒比精品| 国产精品亚洲人在线观看| 日韩成人一级大片| 亚洲国产精品久久不卡毛片| 国产精品不卡在线观看| 久久蜜桃av一区精品变态类天堂 | 日本道精品一区二区三区| 久久精品av麻豆的观看方式| 亚洲一区影音先锋| 亚洲免费在线观看视频| 久久综合九色综合97_久久久| 老司机精品视频在线| 亚洲电影中文字幕在线观看| 亚洲人123区| 亚洲私人影院在线观看| 国产精品女同互慰在线看| 久久久久国产成人精品亚洲午夜| 国产成人精品三级| 极品少妇一区二区三区精品视频| 亚洲精品视频免费看| **欧美大码日韩| 中文字幕一区三区| 国产精品久久毛片| 国产精品免费视频观看| 国产精品日韩成人| 国产婷婷色一区二区三区| 欧美激情一区二区三区不卡| 欧美国产精品一区二区| 中文字幕不卡的av| 亚洲天堂成人网| 亚洲一区二区三区国产| 视频一区二区三区在线| 老司机精品视频一区二区三区| 国产精品九色蝌蚪自拍| 亚洲欧美在线观看| 亚洲一区二区欧美| 蜜臀av亚洲一区中文字幕| 久久9热精品视频| 国产成人亚洲综合色影视| 黄色日韩三级电影| 成人免费视频视频| 色婷婷国产精品| 欧美久久久一区| 国产午夜精品一区二区| 国产精品久久精品日日| 国产精品中文字幕一区二区三区| 亚洲综合男人的天堂| 一区二区免费在线| 久久激情五月激情| 成人小视频免费观看| 精品视频999| 国产欧美日韩在线| 一区二区三区中文字幕| 久久超级碰视频| 97se亚洲国产综合自在线 | 99久久国产综合色|国产精品| 日本va欧美va精品| 国产精品1024| 91在线视频在线| 精品国产乱码久久| 亚洲风情在线资源站| 国产成人8x视频一区二区| 欧美美女直播网站| 国产精品区一区二区三| 无码av免费一区二区三区试看| 亚洲精品日韩专区silk| 国内久久精品视频| 欧美在线啊v一区| 精品国产髙清在线看国产毛片| 欧美日韩性生活| 国产精品久久久久三级| 久久99深爱久久99精品| 欧美午夜精品久久久久久超碰 | 久久99热狠狠色一区二区| 99久久伊人网影院|