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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tntgraphics.pas

?? TNT Components Source
?? PAS
字號(hào):

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntGraphics;

{$INCLUDE TntCompilers.inc}

interface

uses
  Graphics, Windows;

{TNT-WARN TextRect}
procedure WideCanvasTextRect(Canvas: TCanvas; Rect: TRect; X, Y: Integer; const Text: WideString);
{TNT-WARN TextOut}
procedure WideCanvasTextOut(Canvas: TCanvas; X, Y: Integer; const Text: WideString);
{TNT-WARN TextExtent}
function WideCanvasTextExtent(Canvas: TCanvas; const Text: WideString): TSize;
function WideDCTextExtent(hDC: THandle; const Text: WideString): TSize;
{TNT-WARN TextWidth}
function WideCanvasTextWidth(Canvas: TCanvas; const Text: WideString): Integer;
{TNT-WARN TextHeight}
function WideCanvasTextHeight(Canvas: TCanvas; const Text: WideString): Integer;

type
{TNT-WARN TPicture}
  TTntPicture = class(TPicture{TNT-ALLOW TPicture})
  public
    procedure LoadFromFile(const Filename: WideString);
    procedure SaveToFile(const Filename: WideString);
  end;

implementation

uses
  SysUtils, TntSysUtils;

type
  TAccessCanvas = class(TCanvas);

procedure WideCanvasTextRect(Canvas: TCanvas; Rect: TRect; X, Y: Integer; const Text: WideString);
var
  Options: Longint;
begin
  with TAccessCanvas(Canvas) do begin
    Changing;
    RequiredState([csHandleValid, csFontValid, csBrushValid]);
    Options := ETO_CLIPPED or TextFlags;
    if Brush.Style <> bsClear then
      Options := Options or ETO_OPAQUE;
    if ((TextFlags and ETO_RTLREADING) <> 0) and
       (CanvasOrientation = coRightToLeft) then Inc(X, WideCanvasTextWidth(Canvas, Text) + 1);
    Windows.ExtTextOutW(Handle, X, Y, Options, @Rect, PWideChar(Text),
      Length(Text), nil);
    Changed;
  end;
end;

procedure WideCanvasTextOut(Canvas: TCanvas; X, Y: Integer; const Text: WideString);
begin
  with TAccessCanvas(Canvas) do begin
    Changing;
    RequiredState([csHandleValid, csFontValid, csBrushValid]);
    if CanvasOrientation = coRightToLeft then Inc(X, WideCanvasTextWidth(Canvas, Text) + 1);
    Windows.ExtTextOutW(Handle, X, Y, TextFlags, nil, PWideChar(Text),
     Length(Text), nil);
    MoveTo(X + WideCanvasTextWidth(Canvas, Text), Y);
    Changed;
  end;
end;

function WideDCTextExtent(hDC: THandle; const Text: WideString): TSize;
begin
  Result.cx := 0;
  Result.cy := 0;
  Windows.GetTextExtentPoint32W(hDC, PWideChar(Text), Length(Text), Result);
end;

function WideCanvasTextExtent(Canvas: TCanvas; const Text: WideString): TSize;
begin
  with TAccessCanvas(Canvas) do begin
    RequiredState([csHandleValid, csFontValid]);
    Result := WideDCTextExtent(Handle, Text);
  end;
end;

function WideCanvasTextWidth(Canvas: TCanvas; const Text: WideString): Integer;
begin
  Result := WideCanvasTextExtent(Canvas, Text).cX;
end;

function WideCanvasTextHeight(Canvas: TCanvas; const Text: WideString): Integer;
begin
  Result := WideCanvasTextExtent(Canvas, Text).cY;
end;

{ TTntPicture }

procedure TTntPicture.LoadFromFile(const Filename: WideString);
var
  ShortName: WideString;
begin
  ShortName := WideExtractShortPathName(Filename);
  if WideSameText(WideExtractFileExt(FileName), '.jpeg') // the short name ends with ".JPE"!
  or (ShortName = '') then // GetShortPathName failed
    inherited LoadFromFile(FileName)
  else
    inherited LoadFromFile(WideExtractShortPathName(Filename));
end;

procedure TTntPicture.SaveToFile(const Filename: WideString);
var
  TempFile: WideString;
begin
  if Graphic <> nil then begin
    // create to temp file (ansi safe file name)
    repeat
      TempFile := WideExtractFilePath(Filename) + IntToStr(Random(MaxInt)) + WideExtractFileExt(Filename);
    until not WideFileExists(TempFile);
    CloseHandle(WideFileCreate(TempFile)); // make it a real file so that it has a temp
    try
      // save
      Graphic.SaveToFile(WideExtractShortPathName(TempFile));
      // rename
      WideDeleteFile(Filename);
      if not WideRenameFile(TempFile, FileName) then
        RaiseLastOSError;
    finally
      WideDeleteFile(TempFile);
    end;
  end;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2023国产一二三区日本精品2022| 久久九九久精品国产免费直播| 亚洲天堂av一区| 国产福利91精品一区二区三区| 91精品国产麻豆国产自产在线| 1024成人网| 成人av资源网站| 国产精品久久久久久久久免费丝袜| 久久福利资源站| 日韩一区二区三| 美腿丝袜在线亚洲一区 | 丰满岳乱妇一区二区三区| 欧美一卡在线观看| 日韩av在线播放中文字幕| 91.com视频| 日韩电影一区二区三区四区| 欧美老女人在线| 日韩国产欧美三级| 欧美一区二区三区影视| 日韩不卡在线观看日韩不卡视频| 欧美另类一区二区三区| 日韩在线观看一区二区| 欧美日本在线观看| 婷婷亚洲久悠悠色悠在线播放 | 国产精品自产自拍| 日本一区二区三区在线观看| 国产成都精品91一区二区三| 国产性色一区二区| 成a人片国产精品| 亚洲免费观看高清完整版在线 | 亚洲h精品动漫在线观看| 欧美三区免费完整视频在线观看| 五月开心婷婷久久| 日韩精品中文字幕一区| 激情五月婷婷综合| 中文字幕欧美日韩一区| 色综合久久综合网欧美综合网| 亚洲精品高清在线| 亚洲私人影院在线观看| 色菇凉天天综合网| 亚洲成av人**亚洲成av**| 91精品欧美久久久久久动漫| 美女精品一区二区| 日本一区二区三区四区| 91片在线免费观看| 五月婷婷激情综合网| 精品日产卡一卡二卡麻豆| 懂色av一区二区在线播放| 亚洲桃色在线一区| 欧美一区二区久久| 成人综合在线网站| 亚洲第一狼人社区| 精品欧美一区二区在线观看| 国产999精品久久久久久| 亚洲色图一区二区三区| 欧美日韩国产一级| 狠狠狠色丁香婷婷综合久久五月| 国产精品三级av在线播放| 欧美伊人久久久久久久久影院| 日韩成人一级大片| 国产精品欧美久久久久无广告| 色哟哟一区二区在线观看| 欧美aaa在线| 国产精品亲子伦对白| 欧美日韩午夜在线视频| 极品尤物av久久免费看| 亚洲视频一二三区| 日韩写真欧美这视频| 成人激情免费电影网址| 无码av中文一区二区三区桃花岛| 久久蜜桃香蕉精品一区二区三区| 在线亚洲一区二区| 九色综合狠狠综合久久| 亚洲视频一区二区在线观看| 欧美一卡二卡三卡四卡| av电影天堂一区二区在线观看| 日韩精品亚洲一区| 国产精品福利一区二区三区| 欧美精品v国产精品v日韩精品| 国产精品99久久久久久宅男| 亚洲成人资源网| 国产目拍亚洲精品99久久精品| 欧美特级限制片免费在线观看| 国产在线一区二区综合免费视频| 一区二区三区四区av| 久久久久久久久久久久久夜| 欧美在线视频全部完| 粉嫩高潮美女一区二区三区 | 一区二区三区免费在线观看| 精品日韩在线观看| 欧美日韩综合在线| 国产成人精品午夜视频免费| 天天色综合成人网| 亚洲国产激情av| 欧美r级电影在线观看| 日本韩国视频一区二区| 国产成人午夜视频| 日韩vs国产vs欧美| 亚洲午夜私人影院| 国产精品嫩草99a| 精品盗摄一区二区三区| 欧美日韩mp4| 色香蕉成人二区免费| 国产98色在线|日韩| 精久久久久久久久久久| 天堂午夜影视日韩欧美一区二区| 国产精品久久久久aaaa樱花 | 一区二区三区影院| 亚洲国产精品高清| 精品第一国产综合精品aⅴ| 欧美电影影音先锋| 在线一区二区三区四区五区| 成人av在线网| 国产成人亚洲综合色影视| 麻豆中文一区二区| 天堂久久一区二区三区| 一区二区三区精品视频| 中文字幕在线不卡国产视频| 久久精品一区二区三区不卡 | 亚洲第一成年网| 国产精品乱码妇女bbbb| 久久日韩粉嫩一区二区三区| 日韩午夜av一区| 欧美精品在线一区二区| 在线观看中文字幕不卡| 色综合天天在线| av高清不卡在线| 成人午夜视频免费看| 国产成人午夜视频| 国产激情偷乱视频一区二区三区| 九九九精品视频| 激情深爱一区二区| 极品美女销魂一区二区三区免费| 美腿丝袜在线亚洲一区| 免费av成人在线| 美女国产一区二区| 国精产品一区一区三区mba桃花 | 免费成人在线视频观看| 日韩电影在线免费观看| 免费观看91视频大全| 久久国产精品一区二区| 久久精品99国产精品| 激情文学综合网| 国产高清亚洲一区| 成人亚洲精品久久久久软件| 成人在线视频首页| av欧美精品.com| 色欲综合视频天天天| 日本精品免费观看高清观看| 色老头久久综合| 欧美美女视频在线观看| 欧美一区永久视频免费观看| 日韩欧美一卡二卡| 久久综合色鬼综合色| 国产欧美在线观看一区| 亚洲欧美怡红院| 亚洲一区二区三区四区在线| 香蕉加勒比综合久久| 日本sm残虐另类| 国产麻豆视频一区二区| 成人综合在线观看| 在线观看欧美日本| 欧美精品粉嫩高潮一区二区| 日韩视频一区二区三区| 久久久久国产精品免费免费搜索| 国产精品久久久久久久岛一牛影视| 亚洲天堂成人在线观看| 亚洲mv在线观看| 狠狠色丁香婷综合久久| 粉嫩av亚洲一区二区图片| 91日韩在线专区| 欧美日韩成人在线一区| 精品久久久久久久久久久久久久久久久 | 蜜臀av一级做a爰片久久| 国产二区国产一区在线观看| 色婷婷综合久久久| 欧美一区日本一区韩国一区| 国产亚洲一区二区三区四区| 亚洲人成精品久久久久| 日本成人超碰在线观看| 大尺度一区二区| 69精品人人人人| 国产老女人精品毛片久久| 成人高清免费观看| 欧美日韩在线一区二区| 久久伊人蜜桃av一区二区| 亚洲天堂网中文字| 蜜桃在线一区二区三区| 99v久久综合狠狠综合久久| 欧美理论片在线| 国产精品国产自产拍高清av王其| 天涯成人国产亚洲精品一区av| 激情成人综合网| 97精品久久久久中文字幕| 日韩欧美国产一区在线观看| 国产精品看片你懂得| 日日嗨av一区二区三区四区| 国产不卡免费视频| 在线视频一区二区免费| 欧美变态tickling挠脚心|