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

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

?? dbnavpro.pas

?? 地址檔案管理系統
?? PAS
字號:
unit DBNavPro;

//根據  DBNavPLUS 修改,BUTTON‘S CAPTION,MARGIN,LAYOUT,增加
//基本BUTTON的自定義GLYGH。DELPHI附帶的太難看了。INFOPOWER支持GLYPH
//但是不支持LAYOUT,也很不爽,從網上找了一些資料弄了一個小時搞定。
//花了三個小時,滿意的NAVIGATOR還沒有做出來,圖比較的難找。

//Ulysses 2003/05/30 00:14 am
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, Buttons;

const
  DBNavProVersion = '2.1';

type
  TDBNavPro = class(TDBNavigator)
  private
    { Private declarations }
    DoCaptions: boolean;
    FCaptions: TStrings;
    FLayout: TButtonLayout;
    FSpacing: Integer;
    FMargin: Integer;
  protected
    { Protected declarations }
    procedure SetGlyphs(Index: TNavigateBtn; Glyph: TBitmap);
    function GetGlyphs(Index: TNavigateBtn): TBitmap;

    procedure SetLayout(value: TButtonLayout);
    procedure SetSpacing(value: integer);
    procedure SetMargin(value: integer);
    procedure SetCaptions(value: TStrings);
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Glyphs[Index: TNavigateBtn]: TBitmap read GetGlyphs write
      SetGlyphs;
  published
    { Published declarations }

    property Captions: TStrings read FCaptions write SetCaptions;
    property Layout: TButtonLayout read FLayout write SetLayout default
      blGlyphTop;
    property Spacing: Integer read FSpacing write SetSpacing default 2;
    {if we dont set default, the SetMargin is called}
    {this will allow us to put the SetCaptions in as it is not called!}
    property Margin: Integer read FMargin write SetMargin;
    property Font;

    property GlyphFirst: TBitmap index nbFirst read GetGlyphs write SetGlyphs;
    property GlyphPrior: TBitmap index nbPrior read GetGlyphs write SetGlyphs;
    property GlyphNext: TBitmap index nbNext read GetGlyphs write SetGlyphs;
    property GlyphLast: TBitmap index nbLast read GetGlyphs write SetGlyphs;
    property GlyphInsert: TBitmap index nbInsert read GetGlyphs write SetGlyphs;
    property GlyphDelete: TBitmap index nbDelete read GetGlyphs write SetGlyphs;
    property GlyphEdit: TBitmap index nbEdit read GetGlyphs write SetGlyphs;
    property GlyphPost: TBitmap index nbPost read GetGlyphs write SetGlyphs;
    property GlyphCancel: TBitmap index nbCancel read GetGlyphs write SetGlyphs;
    property GlyphRefresh: TBitmap index nbRefresh read GetGlyphs write
      SetGlyphs;
  end;

procedure Register;

implementation

const
  DefaultCaption: array[0..9] of string =
  ('First', 'Prior', 'Next', 'Last', 'Insert',
    'Delete', 'Edit', 'Accept', 'Undo', 'Refresh');

  {******************************************************************************}

constructor TDBNavPro.Create(AOwner: TComponent);
var
  x: integer;
begin
  inherited create(AOwner);
  {initialize values}
  FCaptions := TStringList.create;
  DoCaptions := True;
  FSpacing := 0;
  SetSpacing(2);
  FMargin := 0;
  SetMargin(-1);
  FLayout := blGlyphBottom;
  SetLayout(blGlyphTop);
  FCaptions.Clear;
  for x := 0 to 9 do
    FCaptions.Add(DefaultCaption[x]);
  SetCaptions(FCaptions);
end; {of Create}

{******************************************************************************}

destructor TDBNavPro.Destroy;
begin
  FCaptions.Free;
  inherited Destroy;
end; {of destroy}

{******************************************************************************}

procedure TDBNavPro.SetCaptions(Value: TStrings);
var
  t: TNavigateBtn;
begin
  {set captions or default if not assigned}
  if Value <> FCaptions then
    FCaptions.Assign(Value);
  for t := low(TNavigateBtn) to high(TNavigateBtn) do
  begin
    if ord(t) < Value.Count then
      Buttons[t].caption := Value[ord(t)]
    else
      Buttons[t].caption := DefaultCaption[ord(t)];
  end;
  Invalidate;
end; {of setCaptions}

{******************************************************************************}

procedure TDBNavPro.SetLayout(value: TButtonLayout);
var
  t: TNavigateBtn;
begin
  if (value = Flayout) and not (csLoading in ComponentState) then
    exit;
  FLayout := value;
  for t := low(TNavigateBtn) to high(TNavigateBtn) do
    Buttons[t].Layout := value;
  Invalidate;
end; {of SetLayout}

{******************************************************************************}

procedure TDBNavPro.SetSpacing(value: integer);
var
  t: TNavigateBtn;
begin
  if (value = FSpacing) and not (csLoading in ComponentState) then
    exit;
  FSpacing := value;
  for t := low(TNavigateBtn) to high(TNavigateBtn) do
    Buttons[t].Spacing := value;
  Invalidate;
end; {of SetSpacing}

{******************************************************************************}

procedure TDBNavPro.SetMargin(value: integer);
var
  t: TNavigateBtn;
begin
  if (value = FMargin) and not (csLoading in ComponentState) then
    exit;
  if (csLoading in ComponentState) then
    SetCaptions(FCaptions);
  FMargin := value;
  for t := low(TNavigateBtn) to high(TNavigateBtn) do
    Buttons[t].margin := value;
  Invalidate;
end; {of SetMargin}

procedure TDBNavPro.SetGlyphs(Index: TNavigateBtn; Glyph: TBitmap);
begin
  Buttons[Index].Glyph.Assign(Glyph);
end;

function TDBNavPro.GetGlyphs(Index: TNavigateBtn): TBitmap;
begin
  Result := Buttons[Index].Glyph;
end;

{******************************************************************************}

procedure Register;
begin
  RegisterComponents('Data Controls', [TDBNavPro]);
end; {of Register}
{of uniut}
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av性久久久久蜜臀av麻豆 | 欧美日免费三级在线| 国产精品亚洲午夜一区二区三区 | 福利一区二区在线| 国产经典欧美精品| 成人av电影在线播放| 欧美视频一区二区三区四区 | 亚洲欧美另类综合偷拍| 亚洲一区在线观看免费观看电影高清| 久久精品一区蜜桃臀影院| 久久人人超碰精品| 亚洲女爱视频在线| 蜜桃视频一区二区| 欧美色图免费看| 久久精品视频免费| 日韩经典中文字幕一区| 国产成人精品一区二区三区网站观看| av电影在线观看完整版一区二区| 欧美一级高清片在线观看| 亚洲视频免费在线| 色哟哟一区二区三区| 亚洲精品视频在线观看网站| 成人综合日日夜夜| 亚洲国产综合色| 色婷婷综合激情| 亚洲色图制服诱惑 | 日韩黄色免费电影| 欧美亚洲动漫另类| 亚州成人在线电影| 91精品国产91久久久久久最新毛片| 亚洲日本电影在线| 色婷婷av一区二区三区之一色屋| 一区二区中文视频| 色一区在线观看| 日韩成人dvd| 精品国产一区二区精华| 黄色小说综合网站| 亚洲欧美日韩在线| 99视频一区二区| 一区二区三区波多野结衣在线观看| aaa国产一区| 一区二区三区加勒比av| 日韩视频免费观看高清完整版 | 91精品国产综合久久蜜臀| 日韩极品在线观看| 中文字幕免费不卡在线| 91成人网在线| 国产很黄免费观看久久| 综合自拍亚洲综合图不卡区| 欧美日韩国产综合草草| 久久99国内精品| 亚洲观看高清完整版在线观看 | 久久av老司机精品网站导航| 久久久蜜桃精品| 福利一区在线观看| 精品一区二区三区免费观看| 婷婷综合另类小说色区| 久久综合九色综合97_久久久| 不卡一卡二卡三乱码免费网站| 秋霞影院一区二区| 亚洲一二三四在线| 亚洲精选一二三| 国产精品毛片大码女人| 精品99一区二区三区| 日韩欧美精品在线| 欧美色区777第一页| 成人免费视频免费观看| 国产精品亚洲成人| 成人激情文学综合网| 久久电影国产免费久久电影| 国产日韩v精品一区二区| 8x福利精品第一导航| 欧美精选午夜久久久乱码6080| 欧洲一区二区三区在线| 色综合一个色综合亚洲| av一区二区三区四区| 成人性生交大片免费看中文| 国产精品综合一区二区| 国产91精品一区二区麻豆亚洲| 成人午夜激情片| 在线观看日韩高清av| 欧美高清视频一二三区| 欧美日韩成人一区二区| 色综合天天做天天爱| 在线观看不卡一区| 欧美一区二区免费视频| 国产亚洲欧美一区在线观看| 国产喂奶挤奶一区二区三区| 国产精品欧美一区喷水| 国产精品―色哟哟| 亚洲日本一区二区| 亚洲成人7777| 成人黄动漫网站免费app| 91亚洲男人天堂| 91精品在线观看入口| 国产午夜精品一区二区 | 亚洲观看高清完整版在线观看| 亚洲欧洲综合另类在线| 蜜臀av在线播放一区二区三区| 99国产精品99久久久久久| 精品日韩一区二区三区免费视频| 1024国产精品| hitomi一区二区三区精品| ww久久中文字幕| 国产一区免费电影| 精品国产伦理网| 国产精品一区免费视频| 欧美成人a∨高清免费观看| 五月天一区二区三区| 色哟哟亚洲精品| 欧美大片在线观看| 99国产精品久久久久| 亚洲午夜精品在线| 91麻豆免费观看| 偷偷要91色婷婷| 午夜视频在线观看一区| 亚洲在线一区二区三区| 国产又粗又猛又爽又黄91精品| 久久九九99视频| 欧美日韩在线播放| 国产91在线看| 人人精品人人爱| 亚洲欧美一区二区久久| 欧美一区二区三区免费在线看 | 91美女视频网站| 亚洲国产精品天堂| 日韩一区二区三区三四区视频在线观看| 国产人成亚洲第一网站在线播放 | 在线观看区一区二| 亚洲专区一二三| 日韩一级在线观看| 久久99精品久久久久久国产越南 | 欧美精品高清视频| 蜜臀久久99精品久久久久宅男| 日韩欧美一区二区不卡| 国产成人精品免费在线| 综合自拍亚洲综合图不卡区| 日韩欧美久久久| 色狠狠色狠狠综合| 国产一区二区在线视频| 综合色中文字幕| 精品国产乱码久久久久久夜甘婷婷| 成人av影院在线| 国内精品视频一区二区三区八戒| 国产精品国产自产拍高清av| 欧美一级高清片| 在线免费精品视频| av电影在线不卡| 盗摄精品av一区二区三区| 日本sm残虐另类| 五月天中文字幕一区二区| 国产精品动漫网站| 欧美韩日一区二区三区四区| 欧美乱妇15p| 色婷婷综合久久久久中文一区二区 | 欧美在线观看你懂的| 粉嫩aⅴ一区二区三区四区| 天天综合色天天| 亚洲综合清纯丝袜自拍| 中文字幕一区日韩精品欧美| 国产欧美日韩麻豆91| 精品国产一区二区三区久久久蜜月 | 精品一区二区三区在线观看| 久久精品99国产精品| 高清av一区二区| 欧美日韩一区二区三区高清| 日韩欧美中文字幕制服| 国产三级欧美三级日产三级99| 中文字幕中文字幕一区| 午夜免费欧美电影| 懂色av中文字幕一区二区三区| 91视频.com| 欧美变态口味重另类| 亚洲男人的天堂一区二区| 国产亚洲欧美日韩日本| 国产欧美精品一区二区色综合朱莉| 国产三级欧美三级日产三级99| 久久久影院官网| 中文字幕成人网| 一区二区三区免费看视频| 亚洲国产成人精品视频| 免费成人小视频| 国产.欧美.日韩| 色老头久久综合| 日韩精品一区二区三区三区免费| 久久人人97超碰com| 亚洲精品视频在线观看免费| 天堂影院一区二区| 国产精品亚洲综合一区在线观看| 国产激情一区二区三区| 91免费国产在线观看| 日韩一区二区三| 日韩电影一二三区| 一本到不卡精品视频在线观看| 欧美成人福利视频| 亚洲自拍偷拍综合| 不卡av免费在线观看| 欧美不卡视频一区| 亚洲五码中文字幕| 9i在线看片成人免费|