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

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

?? proxy.pas

?? delphi 寫的delphi的程序 Handel is a free, standalone development tool created with Delphi 3 that enable
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit Proxy;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,TypInfo, Buttons, DsgnIntf,ExtCtrls, Menus;

  {$Include handel.inc}

type
  TGrabPosition = (gpBottomLeft, gpLeft, gpTopLeft, gpTop,
                   gpTopRight, gpRight, gpBottomRight, gpBottom);
  TGrabHandles = class;
  TGrabHandle = class(TCustomControl)
  private
    fPosition: TGrabPosition;
    fControl: TControl;
    fDragging: Boolean;
    fDragPoint: TPoint;
    fDragRect: TRect;
    fSize: Cardinal;
    fHandles: TGrabHandles;
    fColor:TColor;
    fMultiSelected:Boolean;
    procedure SetMultiSelected(Value:Boolean);
  protected
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    procedure StartDrag(X, Y: Integer);
    procedure DoDrag(X, Y: Integer);
    procedure EndDrag(X, Y: Integer);
    procedure ChooseCursor;
  public
    constructor Create(Control: TControl; Position: TGrabPosition; Handles: TGrabHandles);
    procedure Paint; override;
    procedure SetGrabBounds;
    function Center: TPoint;
    property Color:TColor read fColor write fColor default clWhite;
    property GrabPosition: TGrabPosition read fPosition;
    property Control: TControl read fControl;
    property DraggingTo: Boolean read fDragging;
    property DragPoint: TPoint read fDragPoint;
    property DragRect: TRect read fDragRect;
    property GrabHandles: TGrabHandles read fHandles;
    property MultiSelected:Boolean read fMultiSelected write SetMultiSelected;
    property Size: Cardinal read fSize;
  end;

  { Array of grab handles at strategic locations around a component. }
  TGrabHandleArray = array[Low(TGrabPosition)..High(TGrabPosition)] of TGrabHandle;
  TGrabHandles = class
  private
    fHandles: TGrabHandleArray;
    fVisible: Boolean;
    fColor:TColor;
    fControl:TControl;
    fMultiSelected:Boolean;
    function GetHandle(Index: TGrabPosition): TGrabHandle;
    procedure SetVisible(Value: Boolean);
    procedure SetColor(Value:TColor);
    procedure SetMultiSelected(Value:Boolean);
  public
    constructor Create(Control: TControl);
    destructor Destroy; override;
    property  Color:TColor read fColor write SetColor;
    property  Handle[Index: TGrabPosition]: TGrabHandle read GetHandle;
    procedure Hide;
    procedure Show;
    procedure Update;
    property  Control:TControl read fControl write fControl;
    property  MultiSelected:Boolean read fMultiSelected write SetMultiSelected;
    property  Visible: Boolean read fVisible write SetVisible;
  end;

  TDragRectArray = array [1..255] of TRect;

  TDragRectItem = class
  private
     fRectArray: TDragRectArray;
     function GetItem(Index: Integer): TRect;
     procedure SetItem(Index:Integer;Value:TRect);
  public
     constructor Create;
     procedure Clear;
     property Item[Index:Integer]: TRect read GetItem write SetItem ;
  end;

  TDragRectList = class
  private
     fCount: Integer;
     fRectItem: TDragRectItem;
  public
     constructor Create;
     procedure Add(Control:TControl);
     procedure Clear;
     property Items: TDragRectItem read fRectItem write fRectItem ;
  end;

  { A control wrapper for non-visual components. }
  TWrapperControl = class(TCustomControl)
  private
    fComponent: TComponent;
    fBitmap: TBitmap;
  protected
    procedure MakeBitmap;
  public
    constructor Create(Owner: TComponent; Component: TComponent);
    destructor Destroy; override;
    procedure Paint; override;
    procedure UpdateControl;
    property  Component: TComponent read fComponent;
    property  Bitmap: TBitmap read fBitmap;
  published
    property  OriginComponent:TComponent read fComponent write fComponent;
  end;

  TProxyForm = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    fControl: TControl;
    fDragging: Boolean;
    fDragPoint: TPoint;
    fDragRect: TRect;
    fGrabHandles: TGrabHandles;
    fComponentList: TStringList;
    fDragRectList: TDragRectList;
    GotMouse : boolean;
    Anchor, Rover : TPoint;
    procedure MakeARubber(X, Y : integer);
    procedure DrawRect(const Rect: TRect);
    procedure SaveTempForm;
  protected
    procedure ClipChildren(Clipping: Boolean);
    procedure SelectComponentsInRect(Rect: TRect);
    property  DraggingTo: Boolean read fDragging;
    property  DragPoint: TPoint read fDragPoint;
    property  DragRect: TRect read fDragRect;
  public
    { Public declarations }
    FileName:string;
    procedure StartDragging(Pt: TPoint);
    procedure EndDragging(Pt: TPoint);
    procedure DragTo(Pt: TPoint);
    procedure ClipCursorToComponentArea;
    procedure SetCompBounds(const Bounds: TRect);
    function  GetCompBounds: TRect;
    procedure OnMenuClick(Sender:TObject);
    procedure OnFindMethodHandler(Reader: TReader; const MethodName: string;
              var Address: Pointer; var Error: Boolean);
    procedure OnReaderErrorHandler(Reader: TReader; const Message: string; var Handled: Boolean);
    property  ComponentList:TStringList read fComponentList write fComponentList;
    property  DragRectList: TDragRectList read fDragRectList write fDragRectList;
    // Control 加己籃 汽俊輯 急琶茄 牧飄費狼 瀝焊甫 愛絆 樂綽促.
    property  SelectControl: TControl read fControl write fControl;
    property  GrabHandles: TGrabHandles read fGrabHandles write fGrabHandles;
  end;

var
  ProxyForm: TProxyForm;

implementation

uses ObjectInspec, MainForm, Uconst,utype, Editor;

{$R *.DFM}
// 厚矯阿利 哪欺懲飄狼 厚飄甘闌 掘扁 困秦 酒貳狼 哪欺懲飄 府家膠啊 鞘夸竅促.
{$R STDREG.DCR}
{$R SYSREG.DCR}
{$R DBREG.DCR}

// 付快膠狼 困摹啊 靛貳弊俊 秦寸竅綽 芭府父怒 框流看綽啊甫 煉葷茄促.
function IsMouseDrag(Old, New: TPoint): Boolean;
var
  DifX, DifY:Integer;
begin
   Result:= False;
   DifX  := Abs(New.x - Old.x);
   DifY  := Abs(New.y - Old.y);
   if (DifX > 5) or (DifY > 5) then Result:= True
   else Result:= False;
end;

{ Create a grab handle at a specific position, for a control. }
constructor TGrabHandle.Create(Control: TControl; Position: TGrabPosition; Handles: TGrabHandles);
begin
  inherited Create(Control.Owner);
  ControlStyle := ControlStyle - [csOpaque];
  Parent       := Control.Parent;
  fColor       := clWhite;
  fControl     := Control;
  fHandles     := Handles;
  fPosition    := Position;
  fSize        := Screen.PixelsPerInch div 32;
  // exclude csDesigning flag from grab control's componentstate for sizing control 
  TExposeComponent(self).SetDesigning(False);
  SetGrabBounds;
  ChooseCursor;
end;

{ Return the center coordinates of the grab handle. }
function TGrabHandle.Center: TPoint;
begin
  case GrabPosition of
    gpTopLeft:
       if fMultiSelected then Center := Point(Control.Left+2, Control.Top+2)
       else Center := Point(Control.Left, Control.Top);
    gpTop:
       Center := Point(Control.Left + Control.Width div 2, Control.Top);
    gpTopRight:
       if fMultiSelected then Center := Point(Control.Left + Control.Width -2, Control.Top+2)
       else Center := Point(Control.Left + Control.Width, Control.Top);
    gpRight:
       if fMultiSelected then
            Center := Point(Control.Left + Control.Width - 2, Control.Top + Control.Height div 2)
       else Center := Point(Control.Left + Control.Width, Control.Top + Control.Height div 2);
    gpBottomRight:
       if fMultiSelected then Center := Point(Control.Left + Control.Width-2, Control.Top + Control.Height-2)
       else Center := Point(Control.Left + Control.Width, Control.Top + Control.Height);
    gpBottom:
       Center := Point(Control.Left + Control.Width div 2, Control.Top + Control.Height);
    gpBottomLeft:
       if fMultiSelected then Center := Point(Control.Left+2, Control.Top + Control.Height-2)
       else Center := Point(Control.Left, Control.Top + Control.Height);
    gpLeft:
       if fMultiSelected then
            Center := Point(Control.Left + 2, Control.Top + Control.Height div 2)
       else Center := Point(Control.Left, Control.Top + Control.Height div 2);
  end;
end;

{ Set the cursor, depending on the position of the handle. }
procedure TGrabHandle.ChooseCursor;
begin
  case GrabPosition of
    gpTopLeft, gpBottomRight: Cursor := crSizeNWSE;
    gpTop, gpBottom:          Cursor := crSizeNS;
    gpTopRight, gpBottomLeft: Cursor := crSizeNESW;
    gpRight, gpLeft:          Cursor := crSizeWE;
  end;
end;

{ Set the boundaries of the grab handle. }
procedure TGrabHandle.SetGrabBounds;
begin
  with Center do
    inherited SetBounds(X - LongInt(Size), Y - LongInt(Size), Size*2, Size*2);
  Invalidate;
end;

procedure TGrabHandle.Paint;
begin
  if GrabHandles.Visible then
  begin
    Canvas.Brush.Color := FColor;
    Canvas.Brush.Style := bsSolid;
   // Canvas.FillRect(ClientRect);
    Canvas.Rectangle(ClientRect.Left, ClientRect.Top, ClientRect.Right, ClientRect.Bottom);
  end;
end;

{ Left button down on a grab handle means the user is resizing the control. }
procedure TGrabHandle.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then StartDrag(X, Y);
end;

{ While resizing, drag the sizing rectangle. }
procedure TGrabHandle.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
  if DraggingTo then  DoDrag(X, Y);
end;

{ Mouse up: stop dragging. }
procedure TGrabHandle.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if DraggingTo then  EndDrag(X, Y);
end;

{ Start dragging to resize the control. Hide the handles, and
  show the sizing rectangle. Restrict the cursor to the editing
  area, so the user doesn't move nto the method list. }
procedure TGrabHandle.StartDrag(X, Y: Integer);
var
  ControlPt: TPoint;
begin
  fDragging  := True;
  ControlPt  := Center;
  fDragPoint := Point(X - ControlPt.X, Y - ControlPt.Y);
  GrabHandles.Hide;

  fDragRect := Control.BoundsRect;
  with Owner as TProxyForm do
  begin
    ClipCursorToComponentArea;
    ClipChildren(False);
    DrawRect(Self.DragRect);
  end;
end;

{ Continue dragging the sizing rectangle. If the user drags the corner
  across the control, the corners might need to be swapped. }
procedure TGrabHandle.DoDrag(X, Y: Integer);
  procedure Swap(var A, B: Integer);
  var
    Tmp: Integer;
  begin
    Tmp := A;
    A   := B;
    B   := Tmp;
  end;
var
  OldRect, NewRect: TRect;
begin
  with Owner as TProxyForm do
   DrawRect(Self.DragRect);
  X := X - DragPoint.X;
  Y := Y - DragPoint.Y;
  OldRect := Control.BoundsRect;
  case GrabPosition of
  gpTopLeft:     NewRect := Rect(X, Y, OldRect.Right, OldRect.Bottom);
  gpTop:         NewRect := Rect(OldRect.Left, Y, OldRect.Right, OldRect.Bottom);
  gpTopRight:    NewRect := Rect(OldRect.Left, Y, X, OldRect.Bottom);
  gpRight:       NewRect := Rect(OldRect.Left, OldRect.Top, X, OldRect.Bottom);
  gpBottomRight: NewRect := Rect(OldRect.Left, OldRect.Top, X, Y);
  gpBottom:      NewRect := Rect(OldRect.Left, OldRect.Top, OldRect.Right, Y);
  gpBottomLeft:  NewRect := Rect(X, OldRect.Top, OldRect.Right, Y);
  gpLeft:        NewRect := Rect(X, OldRect.Top, OldRect.Right, OldRect.Bottom);
  end;
  with NewRect do
  begin
    if Top > Bottom then
      Swap(Top, Bottom);
    if Left > Right then
      Swap(Left, Right);
  end;
  fDragRect := NewRect;
  with Owner as TProxyForm do
    DrawRect(Self.DragRect);
end;

{ Stop dragging the sizing rectangle. }
procedure TGrabHandle.EndDrag(X, Y: Integer);
var
  Rect: TRect;
begin
  with Owner as TProxyForm do
  begin
    ClipChildren(True);
    DrawRect(Self.DragRect);
  end;
  fDragging := False;
  ClipCursor(nil);

  { Some components are fixed size. If so, keep the origin,
    but reset the size to the fixed size. }
  Rect := DragRect;
  if csFixedWidth in Control.ControlStyle then
    Rect.Right := Rect.Left + Control.Width;
  if csFixedHeight in Control.ControlStyle then
    Rect.Bottom := Rect.Top + Control.Height;
  with Rect do
    Control.SetBounds(Left, Top, Right-Left, Bottom-Top);
  GrabHandles.Show;
  ObjectInspector.DisplayProperty(Control,Control);  // Update Properties
end;

procedure TGrabHandle.SetMultiSelected(Value:Boolean);
begin
  if fMultiSelected = Value then Exit;
  fMultiSelected:= Value;
end;

{TGrabHandles}

{ Create a set of grab handles, at the corners and sides of a control. }
constructor TGrabHandles.Create(Control: TControl);
var
  Pos: TGrabPosition;
begin
  inherited Create;
  fVisible := True;
  fColor   := clWhite;
  fControl := Control;
  fMultiSelected:= False;
  for Pos := Low(TGrabPosition) to High(TGrabPosition) do
    fHandles[Pos] := TGrabHandle.Create(Control, Pos, Self);
end;

destructor TGrabHandles.Destroy;
var
  Pos: TGrabPosition;
begin
  for Pos := Low(TGrabPosition) to High(TGrabPosition) do
    fHandles[Pos].Free;
  inherited Destroy;
end;

procedure TGrabHandles.SetColor(Value:TColor);
begin
   if fColor = Value then Exit;
   fColor:= Value;
   Update;
end;

{ Return a specific handle. }
function TGrabHandles.GetHandle(Index: TGrabPosition): TGrabHandle;
begin
  Result := fHandles[Index];
end;

{ Hide all the grab handles, when dragging. }
procedure TGrabHandles.Hide;
var
  Pos: TGrabPosition;
begin
  if Visible then
  begin
    fVisible := False;
    for Pos := Low(TGrabPosition) to High(TGrabPosition) do
      fHandles[Pos].Hide;
  end;
end;

{ Show all the grab handles again. }
procedure TGrabHandles.Show;
var
  Pos: TGrabPosition;
begin
  if not Visible then
  begin
    fVisible := True;
    for Pos := Low(TGrabPosition) to High(TGrabPosition) do
    begin
      if fHandles[Pos] = nil then Exit;
      fHandles[Pos].SetGrabBounds;
      fHandles[Pos].Color:= fColor;
      fHandles[Pos].Show;
    end;
  end;
end;

{ Update the position of the grab handles after resizing or moving. }
procedure TGrabHandles.Update;
var
  Pos: TGrabPosition;
begin
  if Visible then
    for Pos := Low(TGrabPosition) to High(TGrabPosition) do
    begin
      fHandles[Pos].SetGrabBounds;
      fHandles[Pos].Color:= fColor;
    end;
end;

{ Set the visibility of the grab handles. }
procedure TGrabHandles.SetVisible(Value: Boolean);
begin
  if Value then Show
  else  Hide
end;

// 咯礬 哪欺懲飄甫 悼矯俊 急琶竅綽 版快俊
// GrabHandle狼 困摹客 禍惑,Visible 咯何甫 搬瀝茄促.
procedure TGrabHandles.SetMultiSelected(Value:Boolean);
var
  Pos: TGrabPosition;
begin
   if fMultiSelected = Value then Exit;
   fMultiSelected:= Value;
   if fMultiSelected then
   begin
      for Pos := Low(TGrabPosition) to High(TGrabPosition) do
      begin
       { if not (Pos in [gpBottomLeft,  gpTopLeft, gpTopRight,  gpBottomRight]) then
           fHandles[Pos].Visible:= False
        else}
        begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品秘密在线观看| 亚洲乱码国产乱码精品精可以看 | 久久久久久久精| 中文字幕一区二| 免费精品视频最新在线| 成人高清免费观看| 久久综合色播五月| 亚洲韩国一区二区三区| 成人精品gif动图一区| 欧美一区2区视频在线观看| 亚洲欧美激情一区二区| 国产伦理精品不卡| 欧美视频一区在线| 国产精品成人免费精品自在线观看| 麻豆91在线看| 678五月天丁香亚洲综合网| 亚洲六月丁香色婷婷综合久久 | 性久久久久久久| 成人黄色av网站在线| 亚洲精品一区二区三区福利 | 国产福利一区二区三区| 欧美一区二区三区小说| 亚洲第一av色| 欧美日韩一级视频| 亚洲蜜臀av乱码久久精品| 成人免费福利片| 国产亚洲精品aa| 国产一区欧美日韩| 精品少妇一区二区三区| 麻豆国产一区二区| 欧美电视剧在线观看完整版| 日韩电影在线观看一区| 制服视频三区第一页精品| 性做久久久久久免费观看| 在线欧美小视频| 亚洲国产日韩精品| 精品污污网站免费看| 亚洲成av人综合在线观看| 欧美日韩日本视频| 麻豆精品蜜桃视频网站| 精品日韩一区二区三区| 国产综合成人久久大片91| 久久久久久久精| 成人avav影音| 亚洲免费看黄网站| 欧美日韩黄色影视| 精品无人区卡一卡二卡三乱码免费卡| 欧美一区二区视频免费观看| 老司机一区二区| 久久免费看少妇高潮| 国产夫妻精品视频| 亚洲视频一区在线| 91麻豆精品国产自产在线观看一区| 天天爽夜夜爽夜夜爽精品视频| 日韩一级黄色片| 国产精品一二三| 国产精品传媒视频| 欧美日韩激情一区| 国产精品亚洲视频| 亚洲已满18点击进入久久| 欧美精品高清视频| 国产精品一区二区三区四区| 亚洲欧美国产77777| 91精品国产欧美一区二区成人| 久久激情五月婷婷| 欧美国产精品一区二区三区| 欧洲精品在线观看| 精品一区二区三区在线观看| 国产精品丝袜91| 欧美一区二区三区小说| 成人高清免费在线播放| 日韩1区2区3区| 国产精品久久久久婷婷二区次| 欧美日韩一区二区电影| 成人午夜大片免费观看| 亚洲一区二区三区四区不卡| 精品国产麻豆免费人成网站| 在线观看亚洲成人| 国产高清在线精品| 人人狠狠综合久久亚洲| 亚洲人成7777| 久久久久久97三级| 在线播放/欧美激情| 91同城在线观看| 国产乱码精品一区二区三区av| 香蕉久久一区二区不卡无毒影院| 中文字幕乱码亚洲精品一区| 日韩亚洲电影在线| 日本韩国欧美一区| 国产寡妇亲子伦一区二区| 日韩av一级电影| 亚洲国产视频一区| 亚洲欧美偷拍三级| 中文字幕国产一区| 久久久国产午夜精品| 欧美一区二区在线观看| 欧美日韩久久不卡| 色婷婷综合久久久中文字幕| 国产精品一区二区不卡| 精东粉嫩av免费一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲色欲色欲www| 欧美国产日韩精品免费观看| 久久久久久电影| 久久久久青草大香线综合精品| 欧美一区二区三区日韩视频| 欧美日韩一区中文字幕| 91久久香蕉国产日韩欧美9色| 成人激情综合网站| 不卡影院免费观看| 波多野结衣一区二区三区| 国产精品夜夜嗨| 成人免费视频网站在线观看| 国产精品亚洲一区二区三区在线| 精品午夜久久福利影院| 国产精品18久久久久久久久 | 欧美视频在线一区| 在线一区二区三区四区五区| 91网站黄www| 欧洲国内综合视频| 欧美嫩在线观看| 日韩一区二区三| 精品国产一区二区三区不卡| 精品国产乱码久久| 亚洲国产激情av| 亚洲男人的天堂网| 亚洲一区二区三区四区五区黄| 亚洲成人精品一区二区| 日本免费新一区视频| 久久精品国产色蜜蜜麻豆| 国产一区二区三区四区五区美女 | 精品1区2区3区| 欧美日韩大陆在线| 欧美成人精品二区三区99精品| 精品日韩一区二区三区| 国产精品伦一区二区三级视频| 亚洲人午夜精品天堂一二香蕉| 亚洲国产三级在线| 韩日av一区二区| 97久久人人超碰| 欧美久久久影院| 久久久九九九九| 亚洲一区二区在线播放相泽| 美女一区二区久久| 成人免费三级在线| 欧美日韩国产三级| 国产亚洲欧美日韩俺去了| 一区二区三区免费在线观看| 青青青伊人色综合久久| eeuss鲁一区二区三区| 欧美日韩一级片在线观看| 26uuu国产电影一区二区| 国产精品成人免费| 美女网站色91| 色婷婷国产精品| 精品久久人人做人人爰| 亚洲欧美一区二区三区国产精品 | 欧美成人精品二区三区99精品| 国产精品乱人伦中文| 午夜精品视频一区| 成人蜜臀av电影| 51午夜精品国产| 中文字幕一区三区| 美国十次综合导航| 色婷婷亚洲婷婷| 国产日本欧洲亚洲| 三级久久三级久久久| 99精品视频在线观看| 精品第一国产综合精品aⅴ| 亚洲理论在线观看| 国产成人午夜视频| 日韩精品在线网站| 亚洲国产日韩a在线播放性色| 成人黄色综合网站| 精品国产免费视频| 日韩经典中文字幕一区| 日本黄色一区二区| 国产精品视频免费看| 激情综合色播激情啊| 欧美精品少妇一区二区三区| 亚洲女性喷水在线观看一区| 国产精品一区二区三区四区| 日韩免费高清视频| 日韩1区2区3区| 欧美日韩亚洲综合| 亚洲无线码一区二区三区| 一道本成人在线| 国产精品理论片| 成人av影视在线观看| 国产欧美日韩综合精品一区二区| 另类的小说在线视频另类成人小视频在线 | 色琪琪一区二区三区亚洲区| 日本一区二区三区高清不卡| 国内一区二区视频| 日韩欧美美女一区二区三区| 免费人成在线不卡| 日韩三级精品电影久久久 | 亚洲另类中文字| 在线精品视频免费播放| 亚洲国产一区二区三区|