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

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

?? unitasutils.pas

?? 仿速達界面控件
?? PAS
字號:
unit UnitASUtils;

interface
uses
  Windows, Controls, Graphics, Classes, SysUtils;

function TextWidth(Canvas: TCanvas; AText: WideString; Flags: Integer = 0):
  integer;
overload;
function TextHeight(Canvas: TCanvas; AText: WideString): integer; overload;

procedure FillRect(Canvas: TCanvas; Rect: TRect; Color: TColor); overload;

procedure FillRect(Canvas: TCanvas; ALeft, ATop, ARight, ABottom: integer;
  Color: TColor); overload;

function DrawText(ACanvas: TCanvas; AText: WideString; var Bounds: TRect; Flag:
  cardinal): integer; overload;

function DrawText(ACanvas: TCanvas; AText: WideString; X, Y: integer): integer;
overload;

function CurrencyFrameCellWidth(ACanvas: TCanvas): Integer;

function ChineseCurrencyText(AText: WideString; ACurrencySymbol: WideChar):
  Widestring;

procedure DrawCurrencyFrame(ACanvas: TCanvas; ARect: TRect; Value:
  Currency; CurrencySymbol: WideChar; DrawZeroValue: Boolean = False);

function IsWinNT: Boolean;

implementation

function IsWinNT: Boolean;
var
  VI: TOSVersionInfo;
begin
  VI.dwOSVersionInfoSize := SizeOf(VI);
  GetVersionEx(VI);
  Result := VI.dwPlatformId = VER_PLATFORM_WIN32_NT;
end;

function TextWidth(Canvas: TCanvas; AText: WideString; Flags: Integer = 0):
  integer;
begin
  Result := Canvas.TextWidth(AText);
end;

function TextHeight(Canvas: TCanvas; AText: WideString): integer;
begin
  Result := Canvas.TextHeight(AText);
end;

procedure FillRect(Canvas: TCanvas; Rect: TRect; Color: TColor);
begin
  Canvas.Brush.Style := bsSolid;
  Canvas.Brush.Color := Color;
  Canvas.FillRect(Rect);
end;

procedure FillRect(Canvas: TCanvas; ALeft, ATop, ARight, ABottom: integer;
  Color: TColor); overload;
begin
  FillRect(Canvas, Rect(ALeft, ATop, ARight, ABottom), Color);
end;

function DrawText(ACanvas: TCanvas; AText: WideString; var Bounds: TRect; Flag:
  cardinal): integer;
begin
  Result := Windows.DrawTextW(ACanvas.Handle, PWideChar(AText),
    Length(AText), Bounds, Flag);
end;

function DrawText(ACanvas: TCanvas; AText: WideString; X, Y: integer): integer;
var
  R: TRect;
begin
  R := Rect(X, Y, X + TextWidth(ACanvas, AText), Y + TextHeight(ACanvas,
    AText));
  Result := DrawText(ACanvas, AText, R, 0);
end;

function CurrencyFrameCellWidth(ACanvas: TCanvas): Integer;
var
  I: Integer;
  Tmp: Integer;
begin
  Result := 0;
  for I := 30 to 39 do
  begin
    Tmp := ACanvas.TextWidth(Char(I)) + 2;
    if Result < Tmp then
      Result := Tmp;
  end;
end;

function ChineseCurrencyText(AText: WideString; ACurrencySymbol: WideChar):
  Widestring;
var
  TmpStr: WideString;
  P: PWideChar;
  CurrValue: Currency;
begin
  Result := '';
  if not TryStrToCurr(AText, CurrValue) then
    CurrValue := 0;
  TmpStr := FormatFloat('0.00', Abs(CurrValue));
  P := PWideChar(TmpStr);
  while P^ <> WideChar(#0) do
  begin
    if P^ <> WideChar('.') then
      Result := Result + P^;
    Inc(P);
  end;
  Result := ACurrencySymbol + Result;
end;

procedure DrawCurrencyFrame(ACanvas: TCanvas; ARect: TRect; Value:
  Currency; CurrencySymbol: WideChar; DrawZeroValue: Boolean = False);
const
  //CurrencySymbol = '¥';
  DecimalNumber = 2;
  DigitalNumber = 10;
  DecimalSeparatorColor = clRed;
  KilobitSeparatorColor = clBlack;
  GridLineColor = clMoneyGreen;
  GridLineWidth = 1;
var
  I: Integer;
  RectWidth, RectHeight: Integer;
  CX, CY: Integer;
  LineNum: Integer;
  IsNegative: Boolean; //是否是負數
  AText: WideString;
  CellWidth: Integer;
  CharRect: TRect;
  PCurrentChar: PWideChar;
  OldFontColor: TColor;
  DrawEnd: Boolean;
begin
  OldFontColor := ACanvas.Font.Color;
  //ShowMessage(IntToStr(ACanvas.Font.Size));
  //CellWidth := ACanvas.TextWidth('0') + 2;
  CellWidth := CurrencyFrameCellWidth(ACanvas);
  IsNegative := (Value < 0);
  AText := CurrencySymbol + FormatFloat('0.00', Value);
  RectWidth := ARect.Right - ARect.Left;
  RectHeight := ARect.Bottom - ARect.Top;
  CX := ARect.Right - CellWidth;
  CY := 0;
  LineNum := -2;
  PCurrentChar := @(AText[length(AText)]);
  DrawEnd := False;
  while CX > 0 do
  begin
    Inc(LineNum);
    if (Value <> 0)or(DrawZeroValue) then
    begin
      CharRect := Rect(CX + GridLineWidth, CY, CX + CellWidth, CY + RectHeight);
      if IsNegative then //負數是紅色的;正數是黑色的
        ACanvas.Font.Color := clRed
      else
        ACanvas.Font.Color := clBlack;

      if not DrawEnd then
      begin
        DrawTextW(ACanvas.Handle, PCurrentChar, 1, CharRect, DT_SINGLELINE or
          DT_CENTER or DT_VCENTER);
        if PCurrentChar^ = CurrencySymbol then //劃到了貨幣符號以后就不畫字符了
          DrawEnd := true;
      end;
    end;
    if LineNum = 0 then
      ACanvas.Pen.Color := DecimalSeparatorColor
    else
      if (LineNum mod 3) = 0 then
        ACanvas.Pen.Color := KilobitSeparatorColor
      else
        ACanvas.Pen.Color := GridLineColor;
    ACanvas.MoveTo(CX, CY);
    ACanvas.LineTo(CX, CY + RectHeight);
    Dec(CX, CellWidth);
    Dec(PCurrentChar);
    if (PCurrentChar^ = Widechar('.'))
      or (PCurrentChar^ = Widechar('-')) then //跳過小數點、負號不畫
      Dec(PCurrentChar);
  end;
  ACanvas.Font.Color := OldFontColor;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色视频一区二区| 国产精品人成在线观看免费| 国产日韩欧美精品在线| 亚洲国产精品欧美一二99| 国产91精品入口| 日韩美女视频一区二区在线观看| 中文字幕亚洲综合久久菠萝蜜| 青青草国产成人av片免费| 91免费观看视频在线| 欧美成人精品1314www| 亚洲国产人成综合网站| 91一区二区在线| 国产精品久久久久永久免费观看 | 国产精品欧美一区喷水| 久久精品72免费观看| 欧美日韩一级二级三级| 亚洲免费视频中文字幕| 99re视频精品| 亚洲欧美在线另类| av网站一区二区三区| 国产无遮挡一区二区三区毛片日本| 久久丁香综合五月国产三级网站| 欧美日韩精品福利| 亚洲成a人v欧美综合天堂下载| 在线视频国内一区二区| 一区二区国产盗摄色噜噜| 国产高清成人在线| 久久久五月婷婷| 国产激情视频一区二区在线观看 | 国产成人亚洲综合a∨猫咪| 日韩精品一区二区三区视频播放| 日韩电影一区二区三区四区| 欧美日本国产一区| 日韩精品一级二级| 日韩一区二区免费在线观看| 美国毛片一区二区| 精品久久久久久久久久久久久久久| 日本不卡一区二区三区| 日韩欧美二区三区| 国产一区二区电影| 中文字幕精品在线不卡| kk眼镜猥琐国模调教系列一区二区 | 人妖欧美一区二区| 日韩精品在线看片z| 国产激情精品久久久第一区二区| 中文字幕免费一区| 在线中文字幕不卡| 日韩中文字幕麻豆| 久久久久久久久一| 成人免费视频网站在线观看| 亚洲视频每日更新| 欧美高清你懂得| 精品一区在线看| 国产农村妇女精品| 欧美日韩一区二区三区四区| 捆绑变态av一区二区三区| 久久精品日产第一区二区三区高清版| 成人午夜私人影院| 亚洲国产视频在线| 精品88久久久久88久久久| 91在线免费视频观看| 午夜电影网一区| 国产精品视频在线看| 欧美性生交片4| 国产麻豆精品在线| 一级做a爱片久久| 26uuu亚洲综合色| 色一情一伦一子一伦一区| 蜜臀av一级做a爰片久久| 国产人成亚洲第一网站在线播放| 色综合久久99| 国产一区二区三区精品视频| 一区二区三区四区乱视频| 欧美成人精品二区三区99精品| 91啪亚洲精品| 国产激情一区二区三区桃花岛亚洲| 亚洲精品乱码久久久久久久久| 2023国产精品视频| 欧美日韩精品一区二区| 成人性生交大合| 国产在线播放一区三区四| 亚洲18色成人| 亚洲丝袜制服诱惑| 久久久国产一区二区三区四区小说| 欧美亚洲自拍偷拍| 99久久精品情趣| 国产乱码字幕精品高清av| 欧美aⅴ一区二区三区视频| 亚洲视频电影在线| 国产女人aaa级久久久级| 日韩一区二区三区精品视频| 亚洲天堂精品在线观看| 成人污视频在线观看| 美女爽到高潮91| 一区二区三区欧美在线观看| 国产日本欧美一区二区| 久久婷婷综合激情| 日韩三级伦理片妻子的秘密按摩| 欧洲av在线精品| 色综合久久99| 懂色av一区二区三区蜜臀| 激情六月婷婷综合| 免费在线看成人av| 日韩成人免费看| 午夜精品久久久久久| 亚洲一区二区三区视频在线| 亚洲欧美另类小说| 一区二区三区在线视频免费| 亚洲男女毛片无遮挡| 中文字幕一区二区三区四区| 亚洲欧美综合网| 亚洲人成小说网站色在线| 国产精品丝袜在线| 18涩涩午夜精品.www| 最近中文字幕一区二区三区| 日韩毛片视频在线看| 一色屋精品亚洲香蕉网站| 国产精品乱码人人做人人爱| 国产精品福利一区二区| 亚洲欧美日韩在线| 亚洲最新视频在线观看| 亚洲成人免费av| 日韩成人免费在线| 国产在线播放一区| 成人免费av在线| 91国产免费看| 欧美一区二区在线播放| 欧美v日韩v国产v| 国产欧美日韩在线视频| 亚洲情趣在线观看| 亚洲va国产va欧美va观看| 日韩精品亚洲专区| 国产激情一区二区三区四区| 色综合视频在线观看| 欧美久久久一区| 精品国产区一区| 中文字幕在线播放不卡一区| 亚洲一区二区三区影院| 麻豆精品视频在线观看| 高清不卡一区二区| 欧美无人高清视频在线观看| 日韩一级片在线观看| 国产精品三级av| 亚洲成av人片一区二区三区| 韩国精品在线观看| 欧洲中文字幕精品| 精品不卡在线视频| 一区二区三区在线视频免费| 美女在线视频一区| www..com久久爱| 精品久久99ma| 一区二区三区日韩在线观看| 九九国产精品视频| 色系网站成人免费| 久久精品人人爽人人爽| 一二三四社区欧美黄| 国产一区二区三区最好精华液| 91丨porny丨户外露出| 日韩欧美一级二级三级| 亚洲一区在线观看免费观看电影高清| 狠狠色丁香婷综合久久| 欧美中文字幕一区二区三区亚洲 | 欧美性猛交xxxxxx富婆| 久久久国际精品| 人人精品人人爱| 日本丰满少妇一区二区三区| 久久久国产一区二区三区四区小说 | 国内精品在线播放| 欧美唯美清纯偷拍| 日韩毛片在线免费观看| 国产在线一区二区综合免费视频| 在线亚洲人成电影网站色www| 久久综合久久鬼色中文字| 日韩精品电影在线| 欧美性色综合网| 亚洲精品免费在线观看| 成人免费视频caoporn| 2020日本不卡一区二区视频| 青青草一区二区三区| 欧美日韩在线播放| 一区二区三区欧美| www.欧美日韩国产在线| 国产亚洲视频系列| 久久99精品网久久| 日韩一区二区视频| 奇米888四色在线精品| 欧美一区中文字幕| 亚洲成人免费av| 欧美日韩和欧美的一区二区| 亚洲免费在线看| 色老头久久综合| 亚洲欧美国产三级| 色综合一个色综合| 自拍av一区二区三区| 91美女视频网站| 一区二区三区小说| 色av综合在线| 一个色妞综合视频在线观看| 欧美色电影在线| 婷婷成人综合网|