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

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

?? unitaspages.pas

?? 仿速達界面控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************
仿速達的功能界面

By wr960204 王銳

2004/8/8
*******************************************************}
unit UnitASPages;

{$S-,W-,R-,H+,X+}
{$C PRELOAD}

interface

uses
  Messages, Windows, SysUtils, Classes, UnitASBase, UnitASUtils,
  Controls, Forms, Menus, Graphics, StdCtrls;

type
  TDrawNavigation = procedure(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
    Active: Boolean) of object;

type
  //頁
  TASPage = class(TASBase)
  private

    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  protected
    procedure ReadState(Reader: TReader); override;
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Caption;
    property Height stored False;
    property TabOrder stored False;
    property Visible stored False;
    property Width stored False;

  end;
  //仿速達的功能界面
  TASPageControl = class(TASBase)
  private
    FPageList: TList;
    FAccess: TStrings;
    FPageIndex: Integer;

    FNavigation3D: Boolean;
    FNavigationWidth: Integer;
    FNavigationFont: TFont;
    FNavigationAcitveFont: TFont;
    FNavigationColor: TColor;

    FBufferBMP: TBitmap;
    FOnPageChanged: TNotifyEvent;
    FOnDrawNavigation: TDrawNavigation;
    procedure SeTASPages(Value: TStrings);
    procedure SetActivePage(const Value: string);
    function GetActivePage: string;
    procedure SeTASPageIndex(Value: Integer);
    procedure SetNavigationAcitveFont(const Value: TFont);
    procedure SetNavigationColor(const Value: TColor);
    procedure SetNavigationFont(const Value: TFont);
    function GeTASPageIndexFormPos(X, Y: Integer): Integer;
    procedure SetNavigationWidth(const Value: Integer);
    procedure SetNavigation3D(const Value: Boolean);
  protected

    procedure CreateParams(var Params: TCreateParams); override;
    function GetChildOwner: TComponent; override;
    procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
    procedure ReadState(Reader: TReader); override;
    procedure ShowControl(AControl: TControl); override;
    procedure Paint; override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X: Integer; Y: Integer); override;

    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure WMLButtonDown(var Message: TWMLButtonDown);
      message WM_LBUTTONDOWN;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function GeTASPageRect: TRect;
  published
    property Navigation3D: Boolean read FNavigation3D write SetNavigation3D;
    //導航的字體
    property NavigationFont: TFont read FNavigationFont write SetNavigationFont;
    //導航處于活動時的字體
    property NavigationAcitveFont: TFont read FNavigationAcitveFont write
      SetNavigationAcitveFont;
    //導航的顏色
    property NavigationColor: TColor read FNavigationColor write
      SetNavigationColor;
    //導航的寬度
    property NavigationWidth: Integer read FNavigationWidth write
      SetNavigationWidth;
    //設置當前頁面
    property ActivePage: string read GetActivePage write SetActivePage stored
      False;
    property Align;
    property Anchors;
    property Color;
    property Ctl3D;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Font;
    property Enabled;
    property Constraints;
    //頁面索引
    property PageIndex: Integer read FPageIndex write SeTASPageIndex default
      0;
    //頁面
    property Pages: TStrings read FAccess write SeTASPages stored False;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnClick;
    property OnContextPopup;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    //切換頁面
    property OnPageChanged: TNotifyEvent read FOnPageChanged write
      FOnPageChanged;
    property OnDrawNavigation: TDrawNavigation read FOnDrawNavigation
      write FOnDrawNavigation;
    property OnStartDock;
    property OnStartDrag;
  end;
implementation

uses
  Consts;
//畫出3D的邊框

procedure Frame3D(Canvas: TCanvas; var Rect: TRect; TopColor, BottomColor:
  TColor;
  Width: Integer);

  procedure DoRect;
  var
    TopRight, BottomLeft: TPoint;
  begin
    with Canvas, Rect do
    begin
      TopRight.X := Right;
      TopRight.Y := Top;
      BottomLeft.X := Left;
      BottomLeft.Y := Bottom;
      Pen.Color := TopColor;
      PolyLine([BottomLeft, TopLeft, TopRight]);
      Pen.Color := BottomColor;
      Dec(BottomLeft.X);
      PolyLine([TopRight, BottomRight, BottomLeft]);
    end;
  end;

begin
  Canvas.Pen.Width := 1;
  Dec(Rect.Bottom);
  Dec(Rect.Right);
  while Width > 0 do
  begin
    Dec(Width);
    DoRect;
    InflateRect(Rect, -1, -1);
  end;
  Inc(Rect.Bottom);
  Inc(Rect.Right);
end;

//畫出導航的切換按鈕

function DrawNavigationButtonFace(Canvas: TCanvas; const Client: TRect;
  BevelWidth: Integer): TRect;
const
  IsRounded         = True;
var
  R                 : TRect;
  C1, C2            : TColor;
begin

  R := Client;
  with Canvas do
  begin
    Pen.Color := clWindowFrame;
    Brush.Style := bsSolid;
    Rectangle(R.Left, R.Top, R.Right, R.Bottom);

    if IsRounded then
    begin
      Pixels[R.Left, R.Top] := clBtnFace;
      Pixels[R.Left, R.Bottom - 1] := clBtnFace;
      Pixels[R.Right - 1, R.Top] := clBtnFace;
      Pixels[R.Right - 1, R.Bottom - 1] := clBtnFace;
    end;

    InflateRect(R, -1, -1);
    C1 := RGB(GetRValue(Brush.Color) - 5, GetRValue(Brush.Color) - 5,
      GetRValue(Brush.Color) - 5);
    C2 := RGB(GetRValue(Brush.Color) + 10, GetRValue(Brush.Color) + 10,
      GetRValue(Brush.Color) + 10);
    Frame3D(Canvas, R, C1, C2, BevelWidth);

  end;

  Result := Rect(Client.Left + 1, Client.Top + 1,
    Client.Right - 2, Client.Bottom - 2);
  OffsetRect(Result, 1, 1);
end;

{ TASPageAccess }

type
  TASPageAccess = class(TStrings)
  private
    PageList: TList;
    Notebook: TASPageControl;
  protected
    function GetCount: Integer; override;
    function Get(Index: Integer): string; override;
    function GetObject(Index: Integer): TObject; override;
    procedure SetUpdateState(Updating: Boolean); override;
    procedure Put(Index: Integer; const S: string); override;
  public
    constructor Create(APageList: TList; ANotebook: TASPageControl);
    procedure Clear; override;
    procedure Delete(Index: Integer); override;
    procedure Insert(Index: Integer; const S: string); override;
    procedure Move(CurIndex, NewIndex: Integer); override;
  end;

constructor TASPageAccess.Create(APageList: TList; ANotebook:
  TASPageControl);
begin
  inherited Create;
  PageList := APageList;
  Notebook := ANotebook;
end;

function TASPageAccess.GetCount: Integer;
begin
  Result := PageList.Count;
end;

function TASPageAccess.Get(Index: Integer): string;
begin
  Result := TASPage(PageList[Index]).Caption;
end;

procedure TASPageAccess.Put(Index: Integer; const S: string);
begin
  TASPage(PageList[Index]).Caption := S;
  Notebook.Invalidate;
end;

function TASPageAccess.GetObject(Index: Integer): TObject;
begin
  Result := PageList[Index];
end;

procedure TASPageAccess.SetUpdateState(Updating: Boolean);
begin
  { do nothing }
end;

procedure TASPageAccess.Clear;
var
  I                 : Integer;
begin
  for I := 0 to PageList.Count - 1 do
    TASPage(PageList[I]).Free;
  PageList.Clear;
end;

procedure TASPageAccess.Delete(Index: Integer);
var
  Form              : TCustomForm;
begin
  TASPage(PageList[Index]).Free;
  PageList.Delete(Index);
  NoteBook.PageIndex := 0;

  if csDesigning in NoteBook.ComponentState then
  begin
    Form := GetParentForm(NoteBook);
    if (Form <> nil) and (Form.Designer <> nil) then
      Form.Designer.Modified;
  end;
end;

procedure TASPageAccess.Insert(Index: Integer; const S: string);
var
  Page              : TASPage;
  Form              : TCustomForm;
begin
  Page := TASPage.Create(Notebook);
  with Page do
  begin
    Parent := Notebook;
    Caption := S;
  end;
  PageList.Insert(Index, Page);

  NoteBook.PageIndex := Index;

  if csDesigning in NoteBook.ComponentState then
  begin
    Form := GetParentForm(NoteBook);
    if (Form <> nil) and (Form.Designer <> nil) then
      Form.Designer.Modified;
  end;
end;

procedure TASPageAccess.Move(CurIndex, NewIndex: Integer);
var
  AObject           : TObject;
begin
  if CurIndex <> NewIndex then
  begin
    AObject := PageList[CurIndex];
    PageList[CurIndex] := PageList[NewIndex];
    PageList[NewIndex] := AObject;
    NoteBook.PageIndex := NewIndex;
  end;
end;

{ TASPage }

constructor TASPage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Visible := False;
  ControlStyle := ControlStyle + [csAcceptsControls, csNoDesignVisible,
    csParentBackground];
end;

procedure TASPage.Paint;
begin
  inherited Paint;
  Canvas.Brush.Color := TASPageControl(Owner).Color;
  Canvas.FillRect(ClientRect);
end;

procedure TASPage.ReadState(Reader: TReader);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人午夜精品5599| 欧美人与性动xxxx| 精品一区精品二区高清| 视频一区二区中文字幕| 亚洲午夜在线观看视频在线| 国产精品无遮挡| 国产精品无码永久免费888| 精品国产免费人成电影在线观看四季 | 欧美日韩亚洲综合在线| 日本精品视频一区二区| 在线这里只有精品| 欧美色图激情小说| 欧美精品日日鲁夜夜添| 日韩午夜中文字幕| 久久久美女毛片| 国产精品婷婷午夜在线观看| 国产精品每日更新| 亚洲一区二区五区| 日韩av在线播放中文字幕| 麻豆精品一区二区综合av| 黄色资源网久久资源365| 国产美女精品人人做人人爽| 国产91丝袜在线播放九色| av一区二区三区| 欧美午夜精品理论片a级按摩| 51久久夜色精品国产麻豆| 欧美成人国产一区二区| 国产精品短视频| 日韩国产在线观看一区| 国产精品99久久久| 色欲综合视频天天天| 日韩欧美久久久| 亚洲人被黑人高潮完整版| 天堂影院一区二区| 国产99久久久国产精品潘金 | 久久99精品一区二区三区| 国产99久久久久久免费看农村| 色狠狠一区二区| 精品久久人人做人人爱| 亚洲欧美电影一区二区| 日本不卡不码高清免费观看| 成人国产精品免费观看动漫| 欧美日韩激情一区二区| 国产喂奶挤奶一区二区三区| 亚洲高清一区二区三区| 成人午夜精品一区二区三区| 欧美日产在线观看| 亚洲欧洲日韩综合一区二区| 日韩精品高清不卡| 色女孩综合影院| 欧美高清在线精品一区| 日韩精彩视频在线观看| 91丨porny丨最新| 精品国产伦一区二区三区观看体验| 亚洲欧美视频在线观看视频| 韩国女主播成人在线| 538在线一区二区精品国产| 久久精品视频一区二区三区| 天堂午夜影视日韩欧美一区二区| 99精品视频一区二区| 精品国产91亚洲一区二区三区婷婷| 亚洲午夜精品网| 色哟哟精品一区| 亚洲欧美日韩电影| av不卡一区二区三区| 久久精品欧美一区二区三区不卡 | 久久电影网电视剧免费观看| 欧美日韩大陆在线| 亚洲国产中文字幕| 欧美色成人综合| 亚洲国产日韩精品| 欧美图区在线视频| 亚洲图片欧美视频| 欧美无乱码久久久免费午夜一区| 亚洲黄色录像片| 欧美亚洲尤物久久| 亚洲成a人片综合在线| 欧美性色欧美a在线播放| 亚洲精品成人精品456| 91网上在线视频| 亚洲欧美日韩在线| 欧美日韩日本视频| 婷婷开心激情综合| 日韩片之四级片| 激情五月播播久久久精品| 久久夜色精品一区| 成人黄色网址在线观看| 国产精品污www在线观看| 99久久国产综合精品女不卡| 亚洲丝袜另类动漫二区| 在线国产电影不卡| 日韩专区在线视频| 久久蜜臀中文字幕| 成人高清视频免费观看| 一区二区三区精品| 日韩一区二区电影网| 国模冰冰炮一区二区| 国产午夜精品一区二区三区视频| 国产成人99久久亚洲综合精品| 亚洲欧美另类久久久精品| 欧美日韩国产高清一区二区| 免费成人你懂的| 国产精品美女久久久久久久网站| 欧洲色大大久久| 蜜桃视频第一区免费观看| 欧美极品xxx| 欧美日韩亚洲不卡| 高清视频一区二区| 亚洲国产精品欧美一二99| 欧美tk丨vk视频| 色久优优欧美色久优优| 极品销魂美女一区二区三区| 国产精品视频一二三| 欧美男男青年gay1069videost| 国产伦精品一区二区三区免费迷 | 日本成人中文字幕在线视频| 久久久国产一区二区三区四区小说 | 久久影视一区二区| 色综合天天天天做夜夜夜夜做| 日本成人在线电影网| 国产精品麻豆欧美日韩ww| 8v天堂国产在线一区二区| 成人性生交大片免费看视频在线 | 欧美日韩精品电影| 懂色一区二区三区免费观看 | 精品国产污污免费网站入口 | 日本高清不卡一区| 国产露脸91国语对白| 亚洲成人福利片| 亚洲人成网站色在线观看| 精品成人免费观看| 91精品国产综合久久香蕉的特点 | 欧美老肥妇做.爰bbww| 国产凹凸在线观看一区二区| 男男gaygay亚洲| 日韩精品亚洲一区| 天天av天天翘天天综合网色鬼国产| 国产精品美女久久久久高潮| 久久人人爽爽爽人久久久| 678五月天丁香亚洲综合网| 色呦呦一区二区三区| 91丨porny丨国产| 99这里都是精品| 成人影视亚洲图片在线| 国产福利一区二区三区| 老司机精品视频导航| 久久91精品国产91久久小草| 蜜臀av亚洲一区中文字幕| 日韩av不卡一区二区| 亚洲国产sm捆绑调教视频| 一区二区三区精品在线| 亚洲国产成人av好男人在线观看| 樱花影视一区二区| 一级中文字幕一区二区| 樱花草国产18久久久久| 亚洲一区二区高清| 天堂一区二区在线| 美女视频一区二区三区| 激情六月婷婷久久| 国产91丝袜在线播放0| 北岛玲一区二区三区四区| 成人黄色免费短视频| 99久久综合狠狠综合久久| 色综合天天视频在线观看| 在线视频综合导航| 911精品国产一区二区在线| 91精品国产综合久久福利| 欧美一二三区在线| 久久精品一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲欧洲日产国码二区| 亚洲午夜视频在线| 麻豆精品新av中文字幕| 国产成人久久精品77777最新版本| 成人三级在线视频| 日本韩国一区二区三区视频| 欧美手机在线视频| 欧美成人猛片aaaaaaa| 国产精品污www在线观看| 亚洲午夜激情av| 国产一二精品视频| 在线亚洲精品福利网址导航| 日韩久久免费av| 中文字幕亚洲区| 无码av中文一区二区三区桃花岛| 久久99热这里只有精品| av一区二区三区黑人| 日韩一区二区免费高清| 中文字幕成人av| 日韩在线a电影| jlzzjlzz亚洲日本少妇| 91精品国产一区二区三区| 国产精品久线在线观看| 日日夜夜一区二区| 99精品在线观看视频| 精品福利视频一区二区三区| 亚洲欧美一区二区不卡| 国产大陆亚洲精品国产| 欧美人成免费网站| 亚洲同性gay激情无套|