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

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

?? suifontcombobox.pas

?? 一套還不錯的DELPHI皮膚控件!
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////////
//
//
//  FileName    :   SUIFontComboBox.pas
//  Creator     :   Steve McDonald
//  Merger      :   Shen Min
//  Date        :   2003-04-01 V1-V3
//                  2003-06-24 V4
//  Comment     :
//
//  Copyright (c) 2002-2003 Sunisoft
//  http://www.sunisoft.com
//  Email: support@sunisoft.com
//
////////////////////////////////////////////////////////////////////////////////

unit SUIFontComboBox;

{$B-} {- Complete Boolean Evaluation }
{$R-} {- Range-Checking }
{$V-} {- Var-String Checking }
{$T-} {- Typed @ operator }
{$X+} {- Extended syntax }
{$P+} {- Open string params }
{$J+} {- Writeable structured consts }
{$H+} {- Use long strings by default }
{$W-,T-}

interface

{$I SUIPack.inc}

uses
  Windows, Messages, Classes, Controls, Graphics, StdCtrls, Forms, SUIThemes,
  SUIComboBox;

resourcestring
  SResNotFound = 'Resource %s not found';

type
{ TsuiFontDrawComboBox }

  TFontDrawComboStyle = csDropDown..csDropDownList;

  TsuiFontDrawComboBox = class(TsuiCustomComboBox)
  private
    FStyle: TFontDrawComboStyle;
    FItemHeightChanging: Boolean;
    procedure SetComboStyle(Value: TFontDrawComboStyle);
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
    procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
    procedure ResetItemHeight;
    function MinItemHeight: Integer; virtual;
    property Style: TFontDrawComboStyle read FStyle write SetComboStyle default csDropDownList;
  public
    constructor Create(AOwner: TComponent); override;
  end;

{ TsuiFontComboBox }

  TFontDevice = (fdScreen, fdPrinter, fdBoth);
  TFontListOption = (foAnsiOnly, foTrueTypeOnly, foFixedPitchOnly, foNoOEMFonts, foOEMFontsOnly, foScalableOnly, foNoSymbolFonts);
  TFontListOptions = set of TFontListOption;

  TsuiFontComboBox = class(TsuiFontDrawComboBox)
  private
    FTrueTypeBMP: TBitmap;
    FDeviceBMP: TBitmap;
    FOnChange: TNotifyEvent;
    FDevice: TFontDevice;
    FUpdate: Boolean;
    FUseFonts: Boolean;
    FOptions: TFontListOptions;

    procedure SetFontName(const NewFontName: TFontName);
    function GetFontName: TFontName;
    procedure SetDevice(Value: TFontDevice);
    procedure SetOptions(Value: TFontListOptions);
    procedure SetUseFonts(Value: Boolean);
    procedure Reset;
    procedure WMFontChange(var Message: TMessage); message WM_FONTCHANGE;

  protected
    procedure PopulateList; virtual;
    procedure Change; override;
    procedure Click; override;
    procedure DoChange; dynamic;
    procedure CreateWnd; override;
    procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
    function MinItemHeight: Integer; override;

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Text;

  published
    property Device: TFontDevice read FDevice write SetDevice default fdScreen;
    property FontName: TFontName read GetFontName write SetFontName;
    property Options: TFontListOptions read FOptions write SetOptions default [];
    property UseFonts: Boolean read FUseFonts write SetUseFonts default False;
    property ItemHeight;
    property Color;
    property Ctl3D;
    property DragMode;
    property DragCursor;
    property Enabled;
    property Font;
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
    property ImeMode;
    property ImeName;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Style;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnDropDown;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnStartDrag;
    property OnContextPopup;
    property OnEndDock;
    property OnStartDock;
  end;

  TsuiFontSizeComboBox = class(TsuiCustomComboBox)
  private
    PixelsPerInch : Integer;
    FFontName : TFontName;

    procedure SetFontName( const Value : TFontName );
    procedure Build;
    function GetFontSize: Integer;
    procedure SetFontSize(const Value: Integer);

  public
    constructor Create(AOwner: TComponent); override;

  published
    property FontName : TFontName read FFontName write SetFontName;
    property FontSize : Integer read GetFontSize write SetFontSize;
    property Color;
    property Ctl3D;
    property DragMode;
    property DragCursor;
    property Enabled;
    property Font;
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
    property ImeMode;
    property ImeName;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Style;
    property TabOrder;
    property TabStop;
    property Text;
    property Visible;
    property OnChange;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnDropDown;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnStartDrag;
    property OnContextPopup;
    property OnEndDock;
    property OnStartDock;
  end;


implementation

uses
  SysUtils,
  Consts,
  Printers,
  Dialogs,
  SUIPublic,
  SUIResDef;


{ Utility routines }

procedure ResourceNotFound(ResID: PChar);
var
  S: string;
begin
  if LongRec(ResID).Hi = 0 then
    S := IntToStr(LongRec(ResID).Lo)
  else
    S := StrPas(ResID);
  raise EResNotFound.CreateFmt(SResNotFound, [S]);
end;

function MakeModuleBitmap(Module: THandle; ResID: PChar): TBitmap;
begin
  Result := TBitmap.Create;
  try
    if Module <> 0 then begin
      if LongRec(ResID).Hi = 0 then
        Result.LoadFromResourceID(Module, LongRec(ResID).Lo)
      else
        Result.LoadFromResourceName(Module, StrPas(ResID));
    end
    else begin
      Result.Handle := LoadBitmap(Module, ResID);
      if Result.Handle = 0 then
        ResourceNotFound(ResID);
    end;
  except
    Result.Free;
    Result := nil;
  end;
end;

function CreateBitmap(ResName: PChar): TBitmap;
begin
  Result := MakeModuleBitmap(HInstance, ResName);
  if Result = nil then
    ResourceNotFound(ResName);
end;

function GetItemHeight(Font: TFont): Integer;
var
  DC: HDC;
  SaveFont: HFont;
  Metrics: TTextMetric;
begin
  DC := GetDC(0);
  try
    SaveFont := SelectObject(DC, Font.Handle);
    GetTextMetrics(DC, Metrics);
    SelectObject(DC, SaveFont);
  finally
    ReleaseDC(0, DC);
  end;
  Result := Metrics.tmHeight + 1;
  if Result = 14 then
      Result := 15;
end;

{ TsuiFontDrawComboBox }

constructor TsuiFontDrawComboBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  inherited Style := csDropDownList;
  FStyle := csDropDownList;
end;

procedure TsuiFontDrawComboBox.SetComboStyle(Value: TFontDrawComboStyle);
begin
  if FStyle <> Value then begin
    FStyle := Value;
    inherited Style := Value;
  end;
end;

function TsuiFontDrawComboBox.MinItemHeight: Integer;
begin
  Result := GetItemHeight(Font);
  if Result < 9 then
    Result := 9;
end;

procedure TsuiFontDrawComboBox.ResetItemHeight;
var
  H: Integer;
begin
  H := MinItemHeight;
  FItemHeightChanging := True;
  try
    inherited ItemHeight := H;
  finally
    FItemHeightChanging := False;
  end;
  if HandleAllocated then
    SendMessage(Handle, CB_SETITEMHEIGHT, 0, H);
end;

procedure TsuiFontDrawComboBox.CreateParams(var Params: TCreateParams);
const
  ComboBoxStyles: array[TFontDrawComboStyle] of DWORD =
    (CBS_DROPDOWN, CBS_SIMPLE, CBS_DROPDOWNLIST);
begin
  inherited CreateParams(Params);
  with Params do
    Style := (Style and not CBS_DROPDOWNLIST) or CBS_OWNERDRAWFIXED or
      ComboBoxStyles[FStyle];
end;

procedure TsuiFontDrawComboBox.CreateWnd;
begin
  inherited CreateWnd;
  ResetItemHeight;
end;

procedure TsuiFontDrawComboBox.CMFontChanged(var Message: TMessage);
begin
  inherited;
  ResetItemHeight;
  RecreateWnd;
end;

procedure TsuiFontDrawComboBox.CMRecreateWnd(var Message: TMessage);
begin
  if not FItemHeightChanging then
    inherited;
end;

{ TsuiFontComboBox }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区中文字幕一区二区| 亚洲国产精品久久人人爱| 91久久奴性调教| 国产自产v一区二区三区c| 一区二区三区中文字幕精品精品| 欧美成人性战久久| 欧美性猛交xxxx黑人交| 日韩一卡二卡三卡国产欧美| 亚洲美女电影在线| 96av麻豆蜜桃一区二区| 国产欧美日本一区视频| 国产91丝袜在线播放0| 久久影院电视剧免费观看| 日韩经典中文字幕一区| 精品久久一二三区| 国产91对白在线观看九色| 久久久久久电影| 久久亚洲捆绑美女| 美女尤物国产一区| 亚洲在线视频网站| 亚洲欧洲无码一区二区三区| 精品不卡在线视频| 欧美一区二区免费| 欧美妇女性影城| 欧美影院精品一区| 91精品福利视频| 91麻豆文化传媒在线观看| 粉嫩av一区二区三区| 国产一区二区三区免费播放| 久久se这里有精品| 老司机一区二区| 奇米精品一区二区三区在线观看 | 日韩在线一区二区| 亚洲色图都市小说| 中文字幕在线不卡| 中文字幕一区二区三区在线不卡 | 国产日韩欧美精品在线| 久久免费看少妇高潮| 久久夜色精品国产欧美乱极品| 欧美一区二区播放| 日韩一区二区在线观看视频| 欧美日韩国产片| 欧美剧情片在线观看| 欧美日本视频在线| 欧美一区二区三区思思人| 欧美一区二区福利在线| 日韩一区二区三区视频| 久久这里都是精品| 亚洲国产精品传媒在线观看| 国产精品久久久久久久久晋中| 国产精品免费视频网站| 亚洲图片你懂的| 亚洲一区二区三区精品在线| 日韩精品乱码av一区二区| 一区二区三区欧美久久| 久久久久久久久久美女| 日韩美女视频一区二区| 综合分类小说区另类春色亚洲小说欧美| 欧美裸体一区二区三区| 欧美在线免费播放| 91视频一区二区| 99精品视频一区| 一本一道综合狠狠老| 成人综合婷婷国产精品久久蜜臀 | 婷婷综合五月天| 亚洲成人一区在线| 免费久久精品视频| 懂色av中文一区二区三区| 色综合中文字幕国产| 色婷婷综合视频在线观看| 欧美猛男超大videosgay| 精品乱人伦小说| 国产精品的网站| 婷婷六月综合网| 国产一区二区三区精品视频| 色婷婷综合久色| 精品日韩一区二区三区| ●精品国产综合乱码久久久久 | 极品美女销魂一区二区三区| voyeur盗摄精品| 7777女厕盗摄久久久| 欧美高清在线视频| 亚洲成av人片| 成人国产精品免费观看视频| 欧美视频在线一区二区三区 | 日韩精品成人一区二区三区| 国产另类ts人妖一区二区| 在线观看亚洲成人| 久久网站最新地址| 一区二区三区在线观看国产| 久久99在线观看| 欧美亚洲愉拍一区二区| 日本一区二区久久| 免费成人在线影院| 中文字幕乱码亚洲精品一区| 国产精品久久久久久久久久久免费看| 亚洲国产中文字幕在线视频综合| 精品亚洲成a人在线观看| 91免费观看在线| 精品成人在线观看| 亚洲国产精品久久艾草纯爱| 国产成人av电影| 精品国产亚洲在线| 亚洲成人一区在线| 色综合久久中文字幕综合网| 亚洲精品一区二区三区在线观看 | 99久久免费国产| 久久午夜电影网| 日本伊人精品一区二区三区观看方式| av电影在线观看一区| 欧美激情综合五月色丁香| 免费欧美在线视频| 日韩欧美在线网站| 亚洲高清免费观看| 色婷婷久久综合| 一二三四区精品视频| 色噜噜夜夜夜综合网| 91福利在线看| 1024亚洲合集| 成人国产视频在线观看| 国产日韩欧美电影| 国产麻豆视频精品| 精品捆绑美女sm三区| 蜜臀av在线播放一区二区三区| 91丨porny丨国产| 综合色中文字幕| 99精品久久免费看蜜臀剧情介绍| 亚洲国产岛国毛片在线| 国产高清在线观看免费不卡| 精品国产一区二区国模嫣然| 蜜桃精品视频在线观看| 日韩欧美国产麻豆| 蜜桃视频在线观看一区二区| 日韩视频一区二区在线观看| 免费人成黄页网站在线一区二区| 制服丝袜av成人在线看| 日本怡春院一区二区| 欧美亚洲图片小说| 日日夜夜免费精品| 欧美第一区第二区| 韩国av一区二区三区| 日本一区二区综合亚洲| 成人av影视在线观看| 亚洲免费伊人电影| 欧美色涩在线第一页| 日本一区中文字幕| 久久一区二区三区四区| 成人免费观看视频| 亚洲免费观看视频| 欧美喷潮久久久xxxxx| 久久99精品国产91久久来源| 精品国产成人系列| 成人免费毛片aaaaa**| 专区另类欧美日韩| 欧美日韩国产免费一区二区 | 久久久电影一区二区三区| 成人小视频免费观看| 一区二区高清在线| 91麻豆精品91久久久久同性| 国内精品写真在线观看| 中文字幕中文字幕在线一区 | 欧美一级日韩一级| 99麻豆久久久国产精品免费| 久色婷婷小香蕉久久| 午夜成人在线视频| 亚洲午夜久久久久| 亚洲日本欧美天堂| 国产精品理论片| 一区二区三区四区在线播放| 免费成人结看片| 欧美午夜精品免费| 国产在线精品一区二区不卡了| 国产色婷婷亚洲99精品小说| 一道本成人在线| 激情综合色播五月| 中文字幕亚洲欧美在线不卡| 欧美日韩极品在线观看一区| 国产在线精品一区二区不卡了| 一区二区三区四区激情| 欧美va亚洲va| 色婷婷亚洲精品| 国产在线一区二区| 亚洲综合图片区| 国产片一区二区| 91精品国产91综合久久蜜臀| 久久婷婷综合激情| 亚洲嫩草精品久久| 日本美女一区二区| 欧美老女人第四色| 欧美一区二视频| 天堂va蜜桃一区二区三区漫画版| 亚洲bt欧美bt精品777| 激情小说亚洲一区| 久久你懂得1024| 国产人妖乱国产精品人妖| 日韩毛片精品高清免费| 日韩av在线播放中文字幕| 91精品国产综合久久久久久久久久| 亚洲综合男人的天堂| 国产亚洲成年网址在线观看|