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

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

?? unit tflathintunit.txt

?? Librery to VCL_FREESTYLE
?? TXT
字號:
unit TFlatHintUnit; 
 
interface 
 
uses 
  Classes, Windows, Graphics, Messages, Controls, Forms, SysUtils, FlatUtilitys; 
 
type 
  TFlatHint = class(TComponent) 
  private 
    FHintFont: TFont; 
    FBackgroundColor: TColor; 
    FBorderColor: TColor; 
    FArrowBackgroundColor: TColor; 
    FArrowColor: TColor; 
    FHintWidth: Integer; 
    FOnShowHint: TShowHintEvent; 
   {$IFDEF DFS_DELPHI_4_UP} 
    FBidiMode: TBidiMode; 
   {$ENDIF} 
    procedure SetColors (Index: Integer; Value: TColor); 
    procedure SetHintFont (Value: TFont); 
    procedure GetHintInfo (var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo); 
   {$IFDEF DFS_DELPHI_4_UP} 
    procedure SetBidiMode(const Value: TBidiMode); 
   {$ENDIF} 
  public 
    constructor Create (AOwner: TComponent); override; 
    destructor Destroy; override; 
  published 
    property ColorBackground: TColor index 0 read FBackgroundColor write SetColors default clWhite; 
    property ColorBorder: TColor index 1 read FBorderColor write SetColors default clBlack; 
    property ColorArrowBackground: TColor index 2 read FArrowBackgroundColor write SetColors default $0053D2FF; 
    property ColorArrow: TColor index 3 read FArrowColor write SetColors default clBlack; 
    property MaxHintWidth: Integer read FHintWidth write FHintWidth default 200; 
    property Font: TFont read FHintFont write SetHintFont; 
    property OnShowHint: TShowHintEvent read FOnShowHint write FOnShowHint; 
   {$IFDEF DFS_DELPHI_4_UP} 
    property BidiMode: TBidiMode read FBidiMode write SetBidiMode; 
   {$ENDIF} 
  end; 
 
  TFlatHintWindow = class(THintWindow) 
  private 
    FArrowPos: TArrowPos; 
    FArrowPoint: TPoint; 
    FHint: TFlatHint; 
    function FindFlatHint: TFlatHint; 
  protected 
    procedure Paint; override; 
    procedure CreateParams (var Params: TCreateParams); override; 
  public 
    procedure ActivateHint (HintRect: TRect; const AHint: string); Override; 
  end; 
 
implementation 
 
var 
  HintControl: TControl; // control the tooltip belongs to 
 
constructor TFlatHint.Create (AOwner: TComponent); 
begin 
  inherited Create(AOwner); 
 
  if not (csDesigning in ComponentState) then 
  begin 
    HintWindowClass := TFlatHintWindow; 
 
    with Application do 
    begin 
      ShowHint := not ShowHint; 
      ShowHint := not ShowHint; 
      OnShowHint := GetHintInfo; 
 
      HintShortPause := 25; 
      HintPause := 500; 
      HintHidePause := 5000; 
    end; 
  end; 
 
  FBackgroundColor := clWhite; 
  FBorderColor := clBlack; 
  FArrowBackgroundColor := $0053D2FF; 
  FArrowColor := clBlack; 
  FHintWidth := 200; 
 
  FHintFont := TFont.Create; 
end; 
 
destructor TFlatHint.Destroy; 
begin 
  FHintFont.Free; 
  inherited Destroy; 
end; 
 
procedure TFlatHint.SetColors (Index: Integer; Value: TColor); 
begin 
  case Index of 
    0: FBackgroundColor := Value; 
    1: FBorderColor := Value; 
    2: FArrowBackgroundColor := Value; 
    3: FArrowColor := Value; 
  end; 
end; 
 
procedure TFlatHint.SetHintFont (Value: TFont); 
begin 
  FHintFont.Assign(Value); 
end; 
 
procedure TFlatHint.GetHintInfo (var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo); 
begin 
  if Assigned(FOnShowHint) then 
    FOnShowHint(HintStr, CanShow, HintInfo); 
  HintControl := HintInfo.HintControl; 
end; 
 
{$IFDEF DFS_DELPHI_4_UP} 
procedure TFlatHint.SetBidiMode(const Value: TBidiMode); 
begin 
  if FBiDiMode <> Value then 
    FBiDiMode := Value; 
end; 
{$ENDIF} 
 
{ TFlatHintWindow } 
 
function TFlatHintWindow.FindFlatHint: TFlatHint; 
var 
  currentComponent: Integer; 
begin 
  Result := nil; 
 
  with Application.MainForm do 
    for currentComponent := 0 to ComponentCount - 1 do 
      if Components[currentComponent] is TFlatHint then 
      begin 
        Result := TFlatHint(Components[currentComponent]); 
        Break; 
      end; 
end; 
 
procedure TFlatHintWindow.CreateParams (var Params: TCreateParams); 
begin 
  inherited CreateParams(Params); 
  Params.Style := Params.Style - WS_BORDER; 
end; 
 
procedure TFlatHintWindow.Paint; 
var 
  ArrowRect, TextRect: TRect; 
begin 
  // Set the Rect's 
  case FArrowPos of 
    NW, SW: 
      begin 
        ArrowRect := Rect(ClientRect.Left + 1, ClientRect.Top + 1, ClientRect.Left + 15, ClientRect.Bottom - 1); 
        TextRect  := Rect(ClientRect.Left + 15, ClientRect.Top + 1, ClientRect.Right - 1, ClientRect.Bottom - 1); 
      end; 
    NE, SE: 
      begin 
        ArrowRect := Rect(ClientRect.Right - 15, ClientRect.Top + 1, ClientRect.Right - 1, ClientRect.Bottom - 1); 
        TextRect  := Rect(ClientRect.Left + 1, ClientRect.Top + 1, ClientRect.Right - 15, ClientRect.Bottom - 1); 
      end; 
  end; 
 
  // DrawBackground 
  canvas.brush.color := FHint.FArrowBackgroundColor; 
  canvas.FillRect(ArrowRect); 
  canvas.brush.color := FHint.FBackgroundColor; 
  canvas.FillRect(TextRect); 
 
  // DrawBorder 
  canvas.Brush.Color := FHint.FBorderColor; 
  canvas.FrameRect(ClientRect); 
 
  // DrawArrow 
  case FArrowPos of 
    NW: FArrowPoint := Point(ArrowRect.Left + 2, ArrowRect.Top + 2); 
    NE: FArrowPoint := Point(ArrowRect.Right - 3, ArrowRect.Top + 2); 
    SW: FArrowPoint := Point(ArrowRect.Left + 2, ArrowRect.Bottom - 3); 
    SE: FArrowPoint := Point(ArrowRect.Right - 3, ArrowRect.Bottom - 3); 
  end; 
  canvas.Pen.Color := FHint.FArrowColor; 
  case FArrowPos of 
    NW: canvas.Polyline([Point(FArrowPoint.x,     FArrowPoint.y),     Point(FArrowPoint.x, FArrowPoint.y + 6), 
                         Point(FArrowPoint.x + 1, FArrowPoint.y + 6), Point(FArrowPoint.x + 1, FArrowPoint.y), 
                         Point(FArrowPoint.x + 6, FArrowPoint.y),     Point(FArrowPoint.x + 6, FArrowPoint.y + 1), 
                         Point(FArrowPoint.x + 2, FArrowPoint.y + 1), Point(FArrowPoint.x + 2, FArrowPoint.y + 4), 
                         Point(FArrowPoint.x + 5, FArrowPoint.y + 7), Point(FArrowPoint.x + 6, FArrowPoint.y + 7), 
                         Point(FArrowPoint.x + 3, FArrowPoint.y + 4), Point(FArrowPoint.x + 3, FArrowPoint.y + 3), 
                         Point(FArrowPoint.x + 6, FArrowPoint.y + 6), Point(FArrowPoint.x + 7, FArrowPoint.y + 6), 
                         Point(FArrowPoint.x + 3, FArrowPoint.y + 2), Point(FArrowPoint.x + 4, FArrowPoint.y + 2), 
                         Point(FArrowPoint.x + 7, FArrowPoint.y + 5), Point(FArrowPoint.x + 7, FArrowPoint.y + 6)]); 
    NE: canvas.Polyline([Point(FArrowPoint.x,     FArrowPoint.y),     Point(FArrowPoint.x, FArrowPoint.y + 6), 
                         Point(FArrowPoint.x - 1, FArrowPoint.y + 6), Point(FArrowPoint.x - 1, FArrowPoint.y), 
                         Point(FArrowPoint.x - 6, FArrowPoint.y),     Point(FArrowPoint.x - 6, FArrowPoint.y + 1), 
                         Point(FArrowPoint.x - 2, FArrowPoint.y + 1), Point(FArrowPoint.x - 2, FArrowPoint.y + 4), 
                         Point(FArrowPoint.x - 5, FArrowPoint.y + 7), Point(FArrowPoint.x - 6, FArrowPoint.y + 7), 
                         Point(FArrowPoint.x - 3, FArrowPoint.y + 4), Point(FArrowPoint.x - 3, FArrowPoint.y + 3), 
                         Point(FArrowPoint.x - 6, FArrowPoint.y + 6), Point(FArrowPoint.x - 7, FArrowPoint.y + 6), 
                         Point(FArrowPoint.x - 3, FArrowPoint.y + 2), Point(FArrowPoint.x - 4, FArrowPoint.y + 2), 
                         Point(FArrowPoint.x - 7, FArrowPoint.y + 5), Point(FArrowPoint.x - 7, FArrowPoint.y + 6)]); 
    SW: canvas.Polyline([Point(FArrowPoint.x,     FArrowPoint.y),     Point(FArrowPoint.x, FArrowPoint.y - 6), 
                         Point(FArrowPoint.x + 1, FArrowPoint.y - 6), Point(FArrowPoint.x + 1, FArrowPoint.y), 
                         Point(FArrowPoint.x + 6, FArrowPoint.y),     Point(FArrowPoint.x + 6, FArrowPoint.y - 1), 
                         Point(FArrowPoint.x + 2, FArrowPoint.y - 1), Point(FArrowPoint.x + 2, FArrowPoint.y - 4), 
                         Point(FArrowPoint.x + 5, FArrowPoint.y - 7), Point(FArrowPoint.x + 6, FArrowPoint.y - 7), 
                         Point(FArrowPoint.x + 3, FArrowPoint.y - 4), Point(FArrowPoint.x + 3, FArrowPoint.y - 3), 
                         Point(FArrowPoint.x + 6, FArrowPoint.y - 6), Point(FArrowPoint.x + 7, FArrowPoint.y - 6), 
                         Point(FArrowPoint.x + 3, FArrowPoint.y - 2), Point(FArrowPoint.x + 4, FArrowPoint.y - 2), 
                         Point(FArrowPoint.x + 7, FArrowPoint.y - 5), Point(FArrowPoint.x + 7, FArrowPoint.y - 6)]); 
    SE: canvas.Polyline([Point(FArrowPoint.x,     FArrowPoint.y),     Point(FArrowPoint.x, FArrowPoint.y - 6), 
                         Point(FArrowPoint.x - 1, FArrowPoint.y - 6), Point(FArrowPoint.x - 1, FArrowPoint.y), 
                         Point(FArrowPoint.x - 6, FArrowPoint.y),     Point(FArrowPoint.x - 6, FArrowPoint.y - 1), 
                         Point(FArrowPoint.x - 2, FArrowPoint.y - 1), Point(FArrowPoint.x - 2, FArrowPoint.y - 4), 
                         Point(FArrowPoint.x - 5, FArrowPoint.y - 7), Point(FArrowPoint.x - 6, FArrowPoint.y - 7), 
                         Point(FArrowPoint.x - 3, FArrowPoint.y - 4), Point(FArrowPoint.x - 3, FArrowPoint.y - 3), 
                         Point(FArrowPoint.x - 6, FArrowPoint.y - 6), Point(FArrowPoint.x - 7, FArrowPoint.y - 6), 
                         Point(FArrowPoint.x - 3, FArrowPoint.y - 2), Point(FArrowPoint.x - 4, FArrowPoint.y - 2), 
                         Point(FArrowPoint.x - 7, FArrowPoint.y - 5), Point(FArrowPoint.x - 7, FArrowPoint.y - 6)]); 
  end; 
 
  // DrawHintText 
  canvas.brush.Style := bsClear; 
  InflateRect(TextRect, -3, -1); 
  {$IFDEF DFS_COMPILER_4_UP} 
  if BidiMode = bdRightToLeft then 
    DrawText(canvas.handle, PChar(Caption), Length(Caption), TextRect, DT_RIGHT or DT_WORDBREAK or DT_NOPREFIX) 
  else 
    DrawText(canvas.handle, PChar(Caption), Length(Caption), TextRect, DT_WORDBREAK or DT_NOPREFIX); 
  {$ELSE} 
  DrawText(canvas.handle, PChar(Caption), Length(Caption), TextRect, DT_WORDBREAK or DT_NOPREFIX); 
  {$ENDIF} 
end; 
 
procedure TFlatHintWindow.ActivateHint (HintRect: TRect; const AHint: string); 
var 
  curWidth: Byte; 
  Pnt: TPoint; 
  HintHeight, HintWidth: Integer; 
  NordWest, NordEast, SouthWest, SouthEast: TRect; 
begin 
  Caption := AHint; 
  FHint := FindFlatHint; 
 
  if FHint <> nil then 
    Canvas.Font.Assign(FHint.FHintFont); 
 
  // Calculate width and height 
  HintRect.Right := HintRect.Left + FHint.FHintWidth - 22; 
 
  {$IFDEF DFS_COMPILER_4_UP} 
  if BidiMode = bdRightToLeft then 
    DrawText(Canvas.Handle, @AHint[1], Length(AHint), HintRect, DT_RIGHT or DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX) 
  else 
    DrawText(Canvas.Handle, @AHint[1], Length(AHint), HintRect, DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX); 
  {$ELSE} 
  DrawText(Canvas.Handle, @AHint[1], Length(AHint), HintRect, DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX); 
  {$ENDIF} 
 
 
  DrawText(Canvas.Handle, @AHint[1], Length(AHint), HintRect, DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX); 
  Inc(HintRect.Right, 22); 
  Inc(HintRect.Bottom, 6); 
 
  // Divide the screen in 4 pices 
  NordWest :=  Rect(0, 0, Screen.Width div 2, Screen.Height div 2); 
  NordEast :=  Rect(Screen.Width div 2, 0, Screen.Width, Screen.Height div 2); 
  SouthWest := Rect(0, Screen.Height div 2, Screen.Width div 2, Screen.Height); 
  SouthEast := Rect(Screen.Width div 2, Screen.Height div 2, Screen.Width, Screen.Height); 
 
  GetCursorPos(Pnt); 
 
  if PtInRect(NordWest, Pnt) then 
    FArrowPos := NW 
  else 
    if PtInRect(NordEast, Pnt) then 
      FArrowPos := NE 
    else 
      if PtInRect(SouthWest, Pnt) then 
        FArrowPos := SW 
      else 
        FArrowPos := SE; 
 
  // Calculate the position of the hint 
  if FArrowPos = NW then 
    curWidth := 12 
  else 
    curWidth := 5; 
 
  HintHeight := HintRect.Bottom - HintRect.Top; 
  HintWidth  := HintRect.Right - HintRect.Left; 
 
  case FArrowPos of 
    NW: HintRect := Rect(Pnt.x + curWidth, Pnt.y + curWidth, Pnt.x + HintWidth + curWidth, Pnt.y + HintHeight + curWidth); 
    NE: HintRect := Rect(Pnt.x - HintWidth - curWidth, Pnt.y + curWidth, Pnt.x - curWidth, Pnt.y + HintHeight + curWidth); 
    SW: HintRect := Rect(Pnt.x + curWidth, Pnt.y - HintHeight - curWidth, Pnt.x + HintWidth + curWidth, Pnt.y - curWidth); 
    SE: HintRect := Rect(Pnt.x - HintWidth - curWidth, Pnt.y - HintHeight - curWidth, Pnt.x - curWidth, Pnt.y - curWidth); 
  end; 
 
  BoundsRect := HintRect; 
 
  Pnt := ClientToScreen(Point(0, 0)); 
 
  SetWindowPos(Handle, HWND_TOPMOST, Pnt.X, Pnt.Y, 0, 0, SWP_SHOWWINDOW or SWP_NOACTIVATE or SWP_NOSIZE); 
end; 
 
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲成人自拍| 亚洲影院久久精品| 狠狠色2019综合网| 久久蜜桃av一区二区天堂| 国产一区二区三区蝌蚪| 中文字幕不卡在线观看| 色欧美乱欧美15图片| 欧美a级一区二区| 久久色成人在线| 91农村精品一区二区在线| 亚洲国产精品综合小说图片区| 欧美日韩中文精品| 国产在线国偷精品产拍免费yy| 久久这里只有精品首页| 日本精品一区二区三区四区的功能| 亚洲成av人片一区二区| 国产日韩精品视频一区| 欧美日韩精品二区第二页| 国产高清无密码一区二区三区| 亚洲午夜精品久久久久久久久| 久久久久国产精品人| 91精品国产一区二区三区| eeuss鲁片一区二区三区在线观看| 午夜影院久久久| 亚洲一区二区av电影| 中文字幕亚洲区| 久久久噜噜噜久久中文字幕色伊伊| 欧美三级日韩在线| 色菇凉天天综合网| 欧美日韩大陆在线| 99国产欧美久久久精品| 成人精品免费看| 国产乱码精品一品二品| 久久婷婷久久一区二区三区| 天天色天天爱天天射综合| 亚洲黄色免费网站| 亚洲靠逼com| 亚洲少妇屁股交4| 最新高清无码专区| 婷婷六月综合亚洲| 免费在线观看视频一区| 国产一区二区伦理片| 9色porny自拍视频一区二区| 国产成人福利片| 在线看日本不卡| 久久久亚洲午夜电影| 国产精品每日更新在线播放网址| 亚洲另类在线制服丝袜| 日韩成人一级大片| 成人免费观看男女羞羞视频| 成人av集中营| 日韩视频免费观看高清在线视频| 欧美精品一区在线观看| 亚洲天堂2014| 韩国视频一区二区| 欧美日韩成人综合天天影院 | 久久亚洲春色中文字幕久久久| 久久精品人人做人人综合| 亚洲成人在线网站| 国产福利一区二区三区视频| 99精品视频在线观看| 久久久久久麻豆| 日本不卡123| 欧美性高清videossexo| 国产精品视频免费| 国产成人综合在线| 精品999久久久| 国产中文字幕精品| 欧美va在线播放| 久草中文综合在线| 91精品国产色综合久久久蜜香臀| 亚洲午夜免费视频| 在线亚洲+欧美+日本专区| 国产偷国产偷亚洲高清人白洁 | 国产精品一区二区黑丝| 精品久久久久久久久久久久久久久久久 | 国产精品女人毛片| 国产精品中文字幕一区二区三区| 欧美变态tickling挠脚心| 国产一区二区导航在线播放| 日韩视频免费直播| 国产不卡免费视频| 亚洲视频每日更新| 日韩一二三区不卡| 国产999精品久久| 国产精品国产成人国产三级| 成人黄色片在线观看| 一区二区三区精品| 精品999在线播放| 成人一级黄色片| 亚洲午夜久久久久中文字幕久| 欧美一区二区黄| av激情亚洲男人天堂| 青娱乐精品在线视频| 久久精品一区二区| 国产麻豆91精品| 6080日韩午夜伦伦午夜伦| 久久aⅴ国产欧美74aaa| 久久奇米777| 7799精品视频| 国产精品2024| 日韩国产欧美在线播放| 久久久精品人体av艺术| 欧美日韩免费观看一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 一区二区三区在线免费观看| 26uuu国产电影一区二区| 欧美理论在线播放| 色综合天天综合给合国产| 久久国产精品99久久人人澡| 亚洲精品国产精华液| 国产日韩视频一区二区三区| 日韩精品一区在线| 欧美日韩一区二区在线观看 | 国产传媒一区在线| 狠狠色狠狠色综合日日91app| 天天操天天色综合| 久久机这里只有精品| 日本欧美久久久久免费播放网| 亚洲色图欧美在线| 亚洲成人动漫精品| 香蕉加勒比综合久久| 男人的天堂久久精品| 精品一区二区三区在线视频| 久久电影国产免费久久电影| 久久99久久久欧美国产| 成人黄页在线观看| 欧洲精品中文字幕| 欧美xxxxxxxx| 日韩美女精品在线| 丝袜美腿亚洲一区| 成人激情av网| 日韩免费高清电影| 国产精品灌醉下药二区| 亚洲国产另类av| 国产精品亚洲专一区二区三区| 成人国产精品视频| 欧美成人三级在线| 亚洲色图清纯唯美| 日韩欧美国产午夜精品| 《视频一区视频二区| 另类小说综合欧美亚洲| 91官网在线观看| 久久久久青草大香线综合精品| 亚洲自拍另类综合| 国内精品自线一区二区三区视频| 欧美中文字幕一区| 国产精品国产三级国产普通话99 | 激情欧美日韩一区二区| 欧美日韩精品二区第二页| 国产精品视频免费看| 国产超碰在线一区| 日韩三级伦理片妻子的秘密按摩| 亚洲免费资源在线播放| 成人一区二区三区视频| 久久久影视传媒| 岛国一区二区三区| 久久看人人爽人人| 日韩欧美一区在线| 中文字幕一区二区三区蜜月| 国产高清精品网站| 欧美日韩一区二区三区四区| 中文字幕欧美日本乱码一线二线 | 午夜精品久久久久久| 在线观看欧美精品| 日韩高清一区在线| av中文一区二区三区| 懂色av噜噜一区二区三区av| 中文字幕乱码一区二区免费| av在线播放一区二区三区| 亚洲自拍都市欧美小说| 精品国产成人在线影院| 国产精品正在播放| 自拍偷拍欧美精品| 欧美一区二区三区人| 国产a久久麻豆| 天天色天天操综合| 中文字幕第一区| 91精品久久久久久久99蜜桃 | 国产日韩成人精品| 色综合久久99| 成人午夜精品在线| 日本91福利区| 亚洲综合在线第一页| 精品久久免费看| 精品视频在线看| 色综合天天综合网国产成人综合天| 午夜激情综合网| 亚洲欧美电影院| 中文字幕免费不卡在线| 日韩一区二区免费在线观看| 一本大道av伊人久久综合| 国产在线不卡一卡二卡三卡四卡| 亚洲成av人影院在线观看网| ㊣最新国产の精品bt伙计久久| 亚洲精品在线观看视频| 日韩精品一区二区三区在线播放 | 丁香激情综合国产| 国产suv精品一区二区6| 国产精品影视天天线|