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

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

?? rxcombos.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995, 1996 AO ROSNO             }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

unit RxCombos;

{.$DEFINE GXE}
{ Activate this define to use RxCombos in the GXExplorer Open Source project }

{$I RX.INC}
{$W-,T-}

interface

uses {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF}
  Messages, Classes, Controls, Graphics, StdCtrls, Forms, Menus;

type

{ TOwnerDrawComboBox }

  TOwnerDrawComboStyle = csDropDown..csDropDownList;

  TOwnerDrawComboBox = class(TCustomComboBox)
  private
    FStyle: TOwnerDrawComboStyle;
    FItemHeightChanging: Boolean;
    procedure SetComboStyle(Value: TOwnerDrawComboStyle);
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
{$IFDEF RX_D3}
    procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND;
{$ENDIF}
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
    procedure ResetItemHeight;
    function MinItemHeight: Integer; virtual;
    property Style: TOwnerDrawComboStyle read FStyle write SetComboStyle
      default csDropDownList;
  public
    constructor Create(AOwner: TComponent); override;
  end;

{ TColorComboBox }

{$IFDEF RX_D3}
  TColorComboOption = (coIncludeDefault, coIncludeNone);
  TColorComboOptions = set of TColorComboOption;
{$ENDIF}

  TColorComboBox = class(TOwnerDrawComboBox)
  private
    FColorValue: TColor;
    FDisplayNames: Boolean;
    FColorNames: TStrings;
{$IFDEF RX_D3}
    FOptions: TColorComboOptions;
{$ENDIF}
    FOnChange: TNotifyEvent;
    function GetColorValue: TColor;
    procedure SetColorValue(NewValue: TColor);
    procedure SetDisplayNames(Value: Boolean);
    procedure SetColorNames(Value: TStrings);
{$IFDEF RX_D3}
    procedure SetOptions(Value: TColorComboOptions);
{$ENDIF}
    procedure ColorNamesChanged(Sender: TObject);
  protected
    procedure CreateWnd; override;
    procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
    procedure Click; override;
    procedure Change; override;
    procedure PopulateList; virtual;
    procedure DoChange; dynamic;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Text;
  published
    property ColorValue: TColor read GetColorValue write SetColorValue
      default clBlack;
    property ColorNames: TStrings read FColorNames write SetColorNames;
    property DisplayNames: Boolean read FDisplayNames write SetDisplayNames
      default True;
{$IFDEF RX_D3}
    property Options: TColorComboOptions read FOptions write SetOptions
      default [];
{$ENDIF}
    property Color;
    property Ctl3D;
    property DragMode;
    property DragCursor;
    property Enabled;
    property Font;
{$IFDEF RX_D4}
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
{$ENDIF}
{$IFDEF WIN32}
  {$IFNDEF VER90}
    property ImeMode;
    property ImeName;
  {$ENDIF}
{$ENDIF}
    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;
{$IFDEF WIN32}
    property OnStartDrag;
{$ENDIF}
{$IFDEF RX_D5}
    property OnContextPopup;
{$ENDIF}
{$IFDEF RX_D4}
    property OnEndDock;
    property OnStartDock;
{$ENDIF}
  end;

{ TFontComboBox }

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

  TFontComboBox = class(TOwnerDrawComboBox)
  private
    FTrueTypeBMP: TBitmap;
    FDeviceBMP: TBitmap;
    FOnChange: TNotifyEvent;
    FDevice: TFontDevice;
    FUpdate: Boolean;
    FUseFonts: Boolean;
    FOptions: TFontListOptions;
    procedure SetFontName(const NewFontName: TFontName);
    function GetFontName: TFontName;
    function GetTrueTypeOnly: Boolean;
    procedure SetDevice(Value: TFontDevice);
    procedure SetOptions(Value: TFontListOptions);
    procedure SetTrueTypeOnly(Value: Boolean);
    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 TrueTypeOnly: Boolean read GetTrueTypeOnly write SetTrueTypeOnly
      stored False; { obsolete, use Options instead }
    property UseFonts: Boolean read FUseFonts write SetUseFonts default False;
    property Color;
    property Ctl3D;
    property DragMode;
    property DragCursor;
    property Enabled;
    property Font;
{$IFDEF RX_D4}
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
{$ENDIF}
{$IFDEF WIN32}
  {$IFNDEF VER90}
    property ImeMode;
    property ImeName;
  {$ENDIF}
{$ENDIF}
    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;
{$IFDEF WIN32}
    property OnStartDrag;
{$ENDIF}
{$IFDEF RX_D5}
    property OnContextPopup;
{$ENDIF}
{$IFDEF RX_D4}
    property OnEndDock;
    property OnStartDock;
{$ENDIF}
  end;

{$IFDEF GXE}
procedure Register;
{$ENDIF}

implementation

{$IFDEF WIN32}
 {$R *.R32}
{$ELSE}
 {$R *.R16}
{$ENDIF}

uses SysUtils, Consts, Printers {$IFNDEF GXE}, VCLUtils {$ENDIF};

{$IFDEF GXE}
procedure Register;
begin
  RegisterComponents('Additional', [TFontComboBox, TColorComboBox]);
end;
{$ENDIF GXE}

{$IFNDEF WIN32}
type
  DWORD = Longint;
{$ENDIF}

{ Utility routines }

function CreateBitmap(ResName: PChar): TBitmap;
begin
{$IFDEF GXE}
  Result := TBitmap.Create;
  Result.Handle := LoadBitmap(HInstance, ResName);
{$ELSE}
  Result := MakeModuleBitmap(HInstance, ResName);
  if Result = nil then ResourceNotFound(ResName);
{$ENDIF GXE}
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;
end;

{ TOwnerDrawComboBox }

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

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

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

procedure TOwnerDrawComboBox.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 TOwnerDrawComboBox.CreateParams(var Params: TCreateParams);
const
  ComboBoxStyles: array[TOwnerDrawComboStyle] 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 TOwnerDrawComboBox.CreateWnd;
begin
  inherited CreateWnd;
  ResetItemHeight;
end;

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

{$IFDEF RX_D3}
procedure TOwnerDrawComboBox.CMRecreateWnd(var Message: TMessage);
begin
  if not FItemHeightChanging then
    inherited;
end;
{$ENDIF}

{ TColorComboBox }

const
  ColorsInList = {$IFDEF RX_D3} 18 {$ELSE} 16 {$ENDIF};
  ColorValues: array [0..ColorsInList - 1] of TColor = (
    clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray,
    clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite
    {$IFDEF RX_D3}, clNone, clDefault {$ENDIF});

constructor TColorComboBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FColorValue := clBlack;  { make default color selected }
  FColorNames := TStringList.Create;
  TStringList(FColorNames).OnChange := ColorNamesChanged;
  FDisplayNames := True;
end;

destructor TColorComboBox.Destroy;
begin
  TStringList(FColorNames).OnChange := nil;
  FColorNames.Free;
  FColorNames := nil;
  inherited Destroy;
end;

procedure TColorComboBox.CreateWnd;
begin
  inherited CreateWnd;
  PopulateList;
  SetColorValue(FColorValue);
end;

procedure TColorComboBox.PopulateList;
var
  I: Integer;
  ColorName: string;
begin
  Items.BeginUpdate;
  try
    Clear;
    for I := 0 to Pred(ColorsInList) do begin
{$IFDEF RX_D3}
      if ((ColorValues[I] = clDefault) and not (coIncludeDefault in Options)) or
        ((ColorValues[I] = clNone) and not (coIncludeNone in Options)) then
        Continue;
{$ENDIF}
      if (I <= Pred(FColorNames.Count)) and (FColorNames[I] <> '') then
        ColorName := FColorNames[I]
{$IFDEF RX_D3}
      else if ColorValues[I] = clDefault then ColorName := SDefault
{$ENDIF}
      else
        { delete two first characters which prefix "cl" educated }
        ColorName := Copy(ColorToString(ColorValues[I]), 3, MaxInt);
      Items.AddObject(ColorName, TObject(ColorValues[I]));
    end;
  finally
    Items.EndUpdate;
  end;
end;

procedure TColorComboBox.ColorNamesChanged(Sender: TObject);
begin
  if HandleAllocated then begin
    FColorValue := ColorValue;
    RecreateWnd;
  end;
end;

procedure TColorComboBox.SetColorNames(Value: TStrings);
begin
  FColorNames.Assign(Value);
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av资源网一区| 91精品国产综合久久香蕉麻豆| 欧美色网一区二区| 精品日韩一区二区三区| 一区二区三区中文在线观看| 国产综合成人久久大片91| 欧美日韩国产a| 亚洲啪啪综合av一区二区三区| 精品一二三四在线| 欧美视频一区二区三区四区| 国产精品久久久一本精品| 美女一区二区三区在线观看| 色婷婷狠狠综合| 国产精品久久夜| 成人丝袜视频网| 久久综合色之久久综合| 免费三级欧美电影| 制服丝袜中文字幕亚洲| 亚洲综合久久av| 色欧美88888久久久久久影院| 亚洲国产激情av| 国产大陆精品国产| 久久亚洲欧美国产精品乐播| 日韩不卡在线观看日韩不卡视频| 欧美亚洲禁片免费| 亚洲精品免费电影| 91国偷自产一区二区开放时间 | 91精品国产综合久久久蜜臀图片| 亚洲乱码国产乱码精品精可以看| 成人综合婷婷国产精品久久 | 日韩欧美在线影院| 日韩av在线播放中文字幕| 欧美日韩激情在线| 亚洲国产中文字幕| 欧美乱妇23p| 蜜芽一区二区三区| 精品国产乱码久久久久久老虎| 久久精品国产精品亚洲综合| 精品久久久久久最新网址| 奇米影视在线99精品| 日韩一级视频免费观看在线| 午夜精品福利久久久| 日韩一区二区视频在线观看| 另类成人小视频在线| 久久综合久久久久88| 国产成人日日夜夜| 国产精品国产成人国产三级 | 日日摸夜夜添夜夜添亚洲女人| 欧美日韩一级黄| 麻豆国产精品777777在线| wwwwxxxxx欧美| 粉嫩绯色av一区二区在线观看 | 久久久精品tv| 成+人+亚洲+综合天堂| 亚洲美女淫视频| 欧美久久一区二区| 开心九九激情九九欧美日韩精美视频电影 | 日韩欧美国产一区二区三区| 国产精品996| 亚洲欧美日韩精品久久久久| 91精品黄色片免费大全| 高清在线观看日韩| 亚洲图片欧美视频| 精品国精品自拍自在线| 91在线观看污| 免费成人av资源网| 亚洲嫩草精品久久| 日韩美一区二区三区| 99久久婷婷国产综合精品 | 高清免费成人av| 婷婷开心久久网| 日本一区二区三区在线观看| 欧美视频在线一区二区三区| 国产精品自拍毛片| 亚洲成人免费看| 欧美国产成人在线| 日韩欧美激情四射| 在线观看亚洲专区| 国产精品一二三| 日韩1区2区3区| 一区二区三区视频在线看| 久久久一区二区三区捆绑**| 欧美日韩一区小说| hitomi一区二区三区精品| 久久国产成人午夜av影院| 亚洲一区二区av在线| 国产精品日日摸夜夜摸av| 日韩欧美综合一区| 欧美三级电影网| 91在线视频在线| 国产精品一区专区| 黄色精品一二区| 天天综合天天做天天综合| 亚洲色图清纯唯美| 亚洲国产成人私人影院tom| 日韩精品在线网站| 欧美久久久一区| 欧美亚洲国产一区在线观看网站| 成人av资源在线观看| 国产精品小仙女| 国产一区二区主播在线| 久久成人麻豆午夜电影| 美国精品在线观看| 蜜乳av一区二区| 日韩精品电影在线| 日韩av电影天堂| 亚洲不卡一区二区三区| 亚洲国产精品久久人人爱| 亚洲精品成人悠悠色影视| 国产精品国产馆在线真实露脸 | 久久疯狂做爰流白浆xx| 免费观看日韩av| 久久国产免费看| 国内精品写真在线观看| 激情综合网av| 国产一区二区三区在线观看免费视频 | 亚洲成人av福利| 午夜一区二区三区在线观看| 夜夜嗨av一区二区三区中文字幕| 亚洲日本在线看| 一区二区三区不卡在线观看| 一区二区三区鲁丝不卡| 亚洲精品国产无天堂网2021| 一区二区三区精品在线| 一区二区成人在线视频| 亚洲18色成人| 久久er精品视频| 从欧美一区二区三区| 色菇凉天天综合网| 欧美视频精品在线| 欧美一区二区三区思思人| 精品电影一区二区| 一区在线播放视频| 午夜视频在线观看一区二区三区| 夜夜精品浪潮av一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 午夜av区久久| 国产麻豆视频精品| 色综合色综合色综合| 91麻豆精品国产91久久久更新时间| 日韩精品一区在线| 国产精品美女久久福利网站| 一区二区三国产精华液| 久久99九九99精品| 成人午夜激情影院| 欧美日韩视频在线第一区| 日韩女优电影在线观看| 一区视频在线播放| 麻豆精品国产传媒mv男同 | 亚洲另类色综合网站| 日韩**一区毛片| 99久久久国产精品免费蜜臀| 88在线观看91蜜桃国自产| 久久精品亚洲国产奇米99| 一区二区三区资源| 精品一区二区三区在线视频| 91小视频在线观看| 精品国产凹凸成av人导航| 亚洲精品高清在线| 高清不卡在线观看av| 欧美日韩亚洲另类| 国产精品麻豆久久久| 日本特黄久久久高潮| 99久久久无码国产精品| 精品精品欲导航| 亚洲自拍偷拍欧美| 成人动漫一区二区在线| 精品精品国产高清a毛片牛牛| 亚洲自拍偷拍网站| 成人黄色在线看| 精品国产乱码久久久久久图片| 亚洲动漫第一页| 97精品久久久午夜一区二区三区| 日韩欧美国产午夜精品| 亚洲高清免费在线| 91精品办公室少妇高潮对白| 国产精品乱码妇女bbbb| 久久国产精品72免费观看| 91精品国产色综合久久不卡蜜臀| 有坂深雪av一区二区精品| 粉嫩久久99精品久久久久久夜| 精品久久国产字幕高潮| 日韩av电影免费观看高清完整版| 日本大香伊一区二区三区| 国产精品网站在线播放| 成人午夜视频在线| 欧美激情一区二区三区不卡| 精品一区二区三区不卡| 日韩一级黄色片| 日韩电影免费在线| 在线不卡的av| 首页国产欧美久久| 欧美日韩精品欧美日韩精品一| 亚洲欧洲日本在线| 91蜜桃在线观看| 亚洲欧美另类久久久精品2019| 色综合久久88色综合天天6| 最新不卡av在线| 色8久久人人97超碰香蕉987| 亚洲精品视频在线看|