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

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

?? dwinctl.pas

?? 解元 傳奇2客戶端delphi源程序
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit DWinCtl;
//提供幾個在DX下使用的控件
interface

uses
  Windows, Classes, Graphics, SysUtils, Controls, DXDraws, DXClass,
  Forms, DirectX, DIB, Grids, wmUtil, HUtil32, Wil, cliUtil;

const
   WINLEFT = 60;
   WINTOP  = 60;
   WINRIGHT = 800-60;
   BOTTOMEDGE = 600-30;  //擴檔狼 Bottom撈 WINBOTTOM闌 逞闌 薦 絕瀾.

type
   TClickSound = (csNone, csStone, csGlass, csNorm);
   TDControl = class;
   TOnDirectPaint = procedure(Sender: TObject; dsurface: TDirectDrawSurface) of object;
   TOnKeyPress = procedure(Sender: TObject; var Key: Char) of object;
   TOnKeyDown = procedure(Sender: TObject; var Key: word; Shift: TShiftState) of object;
   TOnMouseMove = procedure(Sender: TObject; Shift: TShiftState; X, Y: integer) of object;
   TOnMouseDown = procedure(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: integer) of object;
   TOnMouseUp = procedure(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) of object;
   TOnClick = procedure(Sender: TObject) of object;
   TOnClickEx = procedure(Sender: TObject; X, Y: integer) of object;
   TOnInRealArea = procedure(Sender: TObject; X, Y: integer; var IsRealArea: Boolean) of object;
   TOnGridSelect = procedure(Sender: TObject; ACol, ARow: integer; Shift: TShiftState) of object;
   TOnGridPaint = procedure(Sender: TObject; ACol, ARow: integer; Rect: TRect; State: TGridDrawState; dsurface: TDirectDrawSurface) of object;
   TOnClickSound = procedure(Sender: TObject; Clicksound: TClickSound) of object;

   TDControl = class (TCustomControl)
   private
      FCaption: string;
      FDParent: TDControl;
      FEnableFocus: Boolean;
      FOnDirectPaint: TOnDirectPaint;
      FOnKeyPress: TOnKeyPress;
      FOnKeyDown: TOnKeyDown;
      FOnMouseMove: TOnMouseMove;
      FOnMouseDown: TOnMouseDown;
      FOnMouseUp: TOnMouseUp;
      FOnDblClick: TNotifyEvent;
      FOnClick: TOnClickEx;
      FOnInRealArea: TOnInRealArea;
      FOnBackgroundClick: TOnClick;
      procedure SetCaption (str: string);
   protected
      FVisible: Boolean;
   public
      Background: Boolean;
      DControls: TList;
      //FaceSurface: TDirectDrawSurface;
      WLib: TWMImages;
      FaceIndex: integer;
      WantReturn: Boolean; //Background老錠, Click狼 葷儈 咯何..

      constructor Create (AOwner: TComponent); override;
      destructor Destroy; override;
      procedure Paint; override;
      procedure Loaded; override;
      function  SurfaceX (x: integer): integer;
      function  SurfaceY (y: integer): integer;
      function  LocalX (x: integer): integer;
      function  LocalY (y: integer): integer;
      procedure AddChild (dcon: TDControl);
      procedure ChangeChildOrder (dcon: TDControl);
      function  InRange (x, y: integer): Boolean;
      function  KeyPress (var Key: Char): Boolean; dynamic;
      function  KeyDown (var Key: Word; Shift: TShiftState): Boolean; dynamic;
      function  MouseMove (Shift: TShiftState; X, Y: Integer): Boolean; dynamic;
      function  MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; dynamic;
      function  MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; dynamic;
      function  DblClick (X, Y: integer): Boolean; dynamic;
      function  Click (X, Y: integer): Boolean; dynamic;
      function  CanFocusMsg: Boolean;

      procedure SetImgIndex (Lib: TWMImages; index: integer);
      procedure DirectPaint (dsurface: TDirectDrawSurface); dynamic;

   published
      property OnDirectPaint: TOnDirectPaint read FOnDirectPaint write FOnDirectPaint;
      property OnKeyPress: TOnKeyPress read FOnKeyPress write FOnKeyPress;
      property OnKeyDown: TOnKeyDown read FOnKeyDown write FOnKeyDown;
      property OnMouseMove: TOnMouseMove read FOnMouseMove write FOnMouseMove;
      property OnMouseDown: TOnMouseDown read FOnMouseDown write FOnMouseDown;
      property OnMouseUp: TOnMouseUp read FOnMouseUp write FOnMouseUp;
      property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
      property OnClick: TOnClickEx read FOnClick write FOnClick;
      property OnInRealArea: TOnInRealArea read FOnInRealArea write FOnInRealArea;
      property OnBackgroundClick: TOnClick read FOnBackgroundClick write FOnBackgroundClick;
      property Caption: string read FCaption write SetCaption;
      property DParent: TDControl read FDParent write FDParent;
      property Visible: Boolean read FVisible write FVisible;
      property EnableFocus: Boolean read FEnableFocus write FEnableFocus;
      property Color;
      property Font;
      property Hint;
      property ShowHint;
      property Align;
   end;
   //按鈕控件
   TDButton = class (TDControl)
   private
      FClickSound: TClickSound;
      FOnClick: TOnClickEx;
      FOnClickSound: TOnClickSound;
   public
      Downed: Boolean;
      constructor Create (AOwner: TComponent); override;
      function  MouseMove (Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
   published
      property ClickCount: TClickSound read FClickSound write FClickSound;
      property OnClick: TOnClickEx read FOnClick write FOnClick;
      property OnClickSound: TOnClickSound read FOnClickSound write FOnClickSound;
   end;
   //表格控件
   TDGrid = class (TDControl)
   private
      FColCount, FRowCount: integer;
      FColWidth, FRowHeight: integer;
      FViewTopLine: integer;
      SelectCell: TPoint;
      DownPos: TPoint;
      FOnGridSelect: TOnGridSelect;
      FOnGridMouseMove: TOnGridSelect;
      FOnGridPaint: TOnGridPaint;
      function  GetColRow (x, y: integer; var acol, arow: integer): Boolean;
   public
      CX, CY: integer;
      Col, Row: integer;
      constructor Create (AOwner: TComponent); override;
      function  MouseMove (Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  Click (X, Y: integer): Boolean; override;
      procedure DirectPaint (dsurface: TDirectDrawSurface); override;
   published
      property ColCount: integer read FColCount write FColCount;
      property RowCount: integer read FRowCount write FRowCount;
      property ColWidth: integer read FColWidth write FColWidth;
      property RowHeight: integer read FRowHeight write FRowHeight;
      property ViewTopLine: integer read FViewTopLine write FViewTopLine;
      property OnGridSelect: TOnGridSelect read FOnGridSelect write FOnGridSelect;
      property OnGridMouseMove: TOnGridSelect read FOnGridMouseMove write FOnGridMouseMove;
      property OnGridPaint: TOnGridPaint read FOnGridPaint write FOnGridPaint;
   end;
   //窗口控件
   TDWindow = class (TDButton)
   private
      FFloating: Boolean;
      SpotX, SpotY: integer;
   protected
      procedure SetVisible (flag: Boolean);
   public
      DialogResult: TModalResult;
      constructor Create (AOwner: TComponent); override;
      function  MouseMove (Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
      function  MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean; override;
      procedure Show;
      function  ShowModal: integer;
   published
      property Visible: Boolean read FVisible write SetVisible;
      property Floating: Boolean read FFloating write FFloating;
   end;

   //控件管理器
   TDWinManager = class (TComponent)
   private
   public
      DWinList: TList; //list of TDControl;
      constructor Create (AOwner: TComponent); override;
      destructor Destroy; override;
      procedure AddDControl (dcon: TDControl; visible: Boolean);
      procedure DelDControl (dcon: TDControl);
      procedure ClearAll;

      function  KeyPress (var Key: Char): Boolean;
      function  KeyDown (var Key: Word; Shift: TShiftState): Boolean;
      function  MouseMove (Shift: TShiftState; X, Y: Integer): Boolean;
      function  MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean;
      function  MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean;
      function  DblClick (X, Y: integer): Boolean;
      function  Click (X, Y: integer): Boolean;
      procedure DirectPaint (dsurface: TDirectDrawSurface);
   end;

procedure Register;
procedure SetDFocus (dcon: TDControl);
procedure ReleaseDFocus;
procedure SetDCapture (dcon: TDControl);
procedure ReleaseDCapture;

var
   MouseCaptureControl: TDControl; //mouse message
   FocusedControl: TDControl; //Key message
   MainWinHandle: integer;    //MainWinHandle := DxDraw1.Handle;
   ModalDWindow: TDControl;


implementation


procedure Register;
begin
   RegisterComponents('Zura', [TDWinManager, TDControl, TDButton, TDGrid, TDWindow]);
end;

//設置當前獲得輸入焦點的空間
procedure SetDFocus (dcon: TDControl);
begin
   FocusedControl := dcon;
end;
//清除
procedure ReleaseDFocus;
begin
   FocusedControl := nil;
end;
//設置鼠標捕獲控件
procedure SetDCapture (dcon: TDControl);
begin
   SetCapture (MainWinHandle);  //DXDraw捕獲
   MouseCaptureControl := dcon;
end;
//釋放鼠標捕獲
procedure ReleaseDCapture;
begin
   ReleaseCapture;
   MouseCaptureControl := nil;
end;

{----------------------------- TDControl -------------------------------}

constructor TDControl.Create (AOwner: TComponent);
begin
   inherited Create (AOwner);
   DParent := nil;
   inherited Visible := FALSE;
   FEnableFocus := FALSE;
   Background := FALSE;

   FOnDirectPaint := nil;
   FOnKeyPress := nil;
   FOnKeyDown := nil;
   FOnMouseMove := nil;
   FOnMouseDown := nil;
   FOnMouseUp := nil;
   FOnInRealArea := nil;
   DControls := TList.Create;
   FDParent := nil;

   Width := 80;
   Height:= 24;
   FCaption := '';
   FVisible := TRUE;
   //FaceSurface := nil;
   WLib := nil;
   FaceIndex := 0;
end;

destructor TDControl.Destroy;
begin
   DControls.Free;
   inherited Destroy;
end;

procedure TDControl.SetCaption (str: string);
begin
   FCaption := str;
   if csDesigning in ComponentState then begin
      Refresh;
   end;
end;

procedure TDControl.Paint;
begin
   if csDesigning in ComponentState then begin
      if self is TDWindow then begin
         with Canvas do begin
            Pen.Color := clBlack;
            MoveTo (0, 0);
            LineTo (Width-1, 0);
            LineTo (Width-1, Height-1);
            LineTo (0, Height-1);
            LineTo (0, 0);
            LineTo (Width-1, Height-1);
            MoveTo (Width-1, 0);
            LineTo (0, Height-1);
            TextOut ((Width-TextWidth(Caption)) div 2, (Height-TextHeight(Caption)) div 2, Caption);
         end;
      end else begin
         with Canvas do begin
            Pen.Color := clBlack;
            MoveTo (0, 0);
            LineTo (Width-1, 0);
            LineTo (Width-1, Height-1);
            LineTo (0, Height-1);
            LineTo (0, 0);
            TextOut ((Width-TextWidth(Caption)) div 2, (Height-TextHeight(Caption)) div 2, Caption);
         end;
      end;
   end;
end;

procedure TDControl.Loaded;
var
   i: integer;
   dcon: TDControl;
begin
   if not (csDesigning in ComponentState) then begin
      if Parent <> nil then
         for i:=0 to TControl(Parent).ComponentCount-1 do begin
            if TControl(Parent).Components[i] is TDControl then begin
               dcon := TDControl(TControl(Parent).Components[i]);
               if dcon.DParent = self then begin
                  AddChild (dcon);
               end;
            end;
         end;
   end;
end;

//計算絕對坐標X
function  TDControl.SurfaceX (x: integer): integer;
var
   d: TDControl;
begin
   d := self;
   while TRUE do begin
      if d.DParent = nil then break;
      x := x + d.DParent.Left;
      d := d.DParent;
   end;
   Result := x;
end;
//計算絕對坐標Y
function  TDControl.SurfaceY (y: integer): integer;
var
   d: TDControl;
begin
   d := self;
   while TRUE do begin
      if d.DParent = nil then break;
      y := y + d.DParent.Top;
      d := d.DParent;
   end;
   Result := y;
end;

//絕對坐標轉換為本對象的相對坐標X
function  TDControl.LocalX (x: integer): integer;
var
   d: TDControl;
begin
   d := self;
   while TRUE do begin
      if d.DParent = nil then break;
      x := x - d.DParent.Left;
      d := d.DParent;
   end;
   Result := x;
end;
//絕對坐標轉換為本對象的相對坐標Y
function  TDControl.LocalY (y: integer): integer;
var
   d: TDControl;
begin
   d := self;
   while TRUE do begin
      if d.DParent = nil then break;
      y := y - d.DParent.Top;
      d := d.DParent;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男人操女人的视频在线观看欧美| 欧美日韩中文字幕一区二区| 日本精品视频一区二区三区| 欧美一区二区三区性视频| 中文字幕欧美激情一区| 免费的成人av| 色婷婷综合五月| 国产亚洲精品7777| 天天射综合影视| 99九九99九九九视频精品| 精品美女被调教视频大全网站| 亚洲青青青在线视频| 国产激情视频一区二区三区欧美 | 日韩和的一区二区| caoporm超碰国产精品| 精品国产sm最大网站| 午夜精品久久久久影视| 99热精品国产| 日本一区二区免费在线| 麻豆传媒一区二区三区| 91麻豆精品国产自产在线| 亚洲精品日日夜夜| 暴力调教一区二区三区| 国产亚洲午夜高清国产拍精品| 日韩不卡一区二区| 欧美日韩日日摸| 伊人性伊人情综合网| 91视频你懂的| 亚洲欧美日韩在线不卡| 成人av在线影院| 亚洲国产高清aⅴ视频| 国产精品性做久久久久久| 精品日产卡一卡二卡麻豆| 蜜臀av国产精品久久久久| 91精品国产色综合久久不卡蜜臀| 性做久久久久久久久| 欧美四级电影网| 亚洲在线视频一区| 欧美日韩视频在线观看一区二区三区| 一级精品视频在线观看宜春院| 91丝袜国产在线播放| 中文字幕亚洲视频| 99国产精品久久久久| 最新欧美精品一区二区三区| 99在线视频精品| 亚洲欧美日韩久久精品| 欧美午夜一区二区三区| 亚洲午夜精品久久久久久久久| 欧洲中文字幕精品| 亚洲国产日韩综合久久精品| 欧美男女性生活在线直播观看| 午夜免费欧美电影| 日韩一区二区在线观看视频播放| 蜜臀av一区二区三区| 久久久久久综合| 99国产精品99久久久久久| 亚洲精品免费视频| 欧美精品亚洲一区二区在线播放| 免费人成精品欧美精品| 国产日韩亚洲欧美综合| 色婷婷综合在线| 日本不卡不码高清免费观看| 欧美精品一区二区高清在线观看 | 国产呦精品一区二区三区网站| 日本一区二区三区在线不卡 | 亚洲欧美一区二区三区久本道91| 欧美性色aⅴ视频一区日韩精品| 五月婷婷激情综合| 久久婷婷成人综合色| 91在线观看视频| 五月婷婷欧美视频| 国产日韩av一区二区| 色欧美乱欧美15图片| 男女男精品视频| 国产精品伦理一区二区| 在线观看亚洲成人| 国产精品自拍网站| 夜夜精品视频一区二区| 精品国产1区2区3区| 91亚洲精品乱码久久久久久蜜桃| 香蕉影视欧美成人| 国产精品视频一二三| 欧美日韩一级片网站| 国产ts人妖一区二区| 亚洲成国产人片在线观看| 久久新电视剧免费观看| 欧美日韩你懂得| 成人精品鲁一区一区二区| 日韩在线观看一区二区| 亚洲欧美日韩一区| 久久久精品免费免费| 欧美精品丝袜中出| 99视频精品全部免费在线| 毛片av一区二区| 亚洲国产一区在线观看| 中文字幕国产一区| 精品理论电影在线| 欧美色视频在线观看| 成人精品鲁一区一区二区| 全国精品久久少妇| 亚洲高清免费一级二级三级| 国产精品欧美一区二区三区| 日韩欧美一区在线| 欧美日韩在线播| 99精品国产视频| 国产成人午夜99999| 麻豆传媒一区二区三区| 亚洲大型综合色站| 亚洲嫩草精品久久| 国产区在线观看成人精品| 日韩欧美中文字幕公布| 91精品国产色综合久久不卡蜜臀 | 色综合久久99| 成人黄色777网| 国产毛片一区二区| 激情六月婷婷综合| 美洲天堂一区二卡三卡四卡视频| 亚洲毛片av在线| 18涩涩午夜精品.www| 国产精品免费aⅴ片在线观看| 久久久国际精品| 久久久久久久网| 久久精品视频一区二区三区| 欧美精品一区二区三区久久久| 欧美一级高清片在线观看| 欧美日韩高清在线| 欧美高清精品3d| 欧美人牲a欧美精品| 制服丝袜国产精品| 欧美一区二区视频免费观看| 制服丝袜成人动漫| 日韩一区二区免费在线电影| 91精品国产品国语在线不卡| 欧美高清精品3d| 欧美一区午夜精品| 欧美mv日韩mv国产| 久久精品一区四区| 国产精品日韩精品欧美在线| 国产精品国产三级国产aⅴ入口 | 岛国av在线一区| thepron国产精品| 91在线小视频| 在线欧美日韩精品| 欧美区视频在线观看| 日韩女优毛片在线| 久久综合色天天久久综合图片| 国产免费成人在线视频| 亚洲猫色日本管| 日韩av一区二区三区| 国产一区二区三区不卡在线观看 | 国产高清久久久| 99精品1区2区| 欧美精品一区二区三区高清aⅴ | 日韩三级视频在线观看| 久久久久久久久一| 亚洲免费av观看| 日韩福利电影在线| 国产成人精品午夜视频免费| 色婷婷亚洲综合| 精品国产乱码久久久久久蜜臀| 国产精品久久久久aaaa| 亚洲一区免费在线观看| 久久黄色级2电影| 99久久精品国产毛片| 91精品国产色综合久久久蜜香臀| 国产亚洲人成网站| 亚洲综合免费观看高清完整版在线| 美女性感视频久久| 一本色道综合亚洲| 欧美变态口味重另类| 亚洲精品国产精品乱码不99| 蜜桃精品视频在线观看| 91亚洲精品乱码久久久久久蜜桃| 欧美一区在线视频| 1区2区3区国产精品| 黄色资源网久久资源365| 欧美无砖专区一中文字| 国产女人水真多18毛片18精品视频| 亚洲成人先锋电影| av网站一区二区三区| 日韩欧美一级二级| 亚洲综合精品久久| 成人激情视频网站| 日韩精品自拍偷拍| 亚洲国产精品影院| 99视频在线精品| 久久综合九色综合久久久精品综合| 亚洲精品视频在线观看网站| 国产一区在线看| 欧美一区二区三区四区高清| 一区二区在线观看不卡| 国产在线国偷精品产拍免费yy| 精品污污网站免费看| 亚洲女子a中天字幕| 国产v综合v亚洲欧| 精品女同一区二区| 青青草视频一区| 欧美精三区欧美精三区| 一区二区免费在线播放| 91同城在线观看|