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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bsskingrids.pas

?? 實(shí)現(xiàn)網(wǎng)絡(luò)流量的生成,為cs結(jié)構(gòu),可以控制流量大小
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
procedure TbsSkinInplaceEdit.DblClick;
begin
  Grid.DblClick;
end;

function TbsSkinInplaceEdit.EditCanModify: Boolean;
begin
  Result := Grid.CanEditModify;
end;

procedure TbsSkinInplaceEdit.KeyDown(var Key: Word; Shift: TShiftState);

  procedure SendToParent;
  begin
    Grid.KeyDown(Key, Shift);
    Key := 0;
  end;

  procedure ParentEvent;
  var
    GridKeyDown: TKeyEvent;
  begin
    GridKeyDown := Grid.OnKeyDown;
    if Assigned(GridKeyDown) then GridKeyDown(Grid, Key, Shift);
  end;

  function ForwardMovement: Boolean;
  begin
    Result := goAlwaysShowEditor in Grid.Options;
  end;

  function Ctrl: Boolean;
  begin
    Result := ssCtrl in Shift;
  end;

  function Selection: TSelection;
  begin
    SendMessage(Handle, EM_GETSEL, Longint(@Result.StartPos), Longint(@Result.EndPos));
  end;

  function RightSide: Boolean;
  begin
    with Selection do
      Result := ((StartPos = 0) or (EndPos = StartPos)) and
        (EndPos = GetTextLen);
   end;

  function LeftSide: Boolean;
  begin
    with Selection do
      Result := (StartPos = 0) and ((EndPos = 0) or (EndPos = GetTextLen));
  end;

begin
  case Key of
    VK_UP, VK_DOWN, VK_PRIOR, VK_NEXT, VK_ESCAPE: SendToParent;
    VK_INSERT:
      if Shift = [] then SendToParent
      else if (Shift = [ssShift]) and not Grid.CanEditModify then Key := 0;
    VK_LEFT: if ForwardMovement and (Ctrl or LeftSide) then SendToParent;
    VK_RIGHT: if ForwardMovement and (Ctrl or RightSide) then SendToParent;
    VK_HOME: if ForwardMovement and (Ctrl or LeftSide) then SendToParent;
    VK_END: if ForwardMovement and (Ctrl or RightSide) then SendToParent;
    VK_F2:
      begin
        ParentEvent;
        if Key = VK_F2 then
        begin
          Deselect;
          Exit;
        end;
      end;
    VK_TAB: if not (ssAlt in Shift) then SendToParent;
  end;
  if (Key = VK_DELETE) and not Grid.CanEditModify then Key := 0;
  if Key <> 0 then
  begin
    ParentEvent;
    inherited KeyDown(Key, Shift);
  end;
end;

procedure TbsSkinInplaceEdit.KeyPress(var Key: Char);
var
  Selection: TSelection;
begin
  Grid.KeyPress(Key);
  if (Key in [#32..#255]) and not Grid.CanEditAcceptKey(Key) then
  begin
    Key := #0;
    MessageBeep(0);
  end;
  case Key of
    #9, #27: Key := #0;
    #13:
      begin
        SendMessage(Handle, EM_GETSEL, Longint(@Selection.StartPos), Longint(@Selection.EndPos));
        if (Selection.StartPos = 0) and (Selection.EndPos = GetTextLen) then
          Deselect else
          SelectAll;
        Key := #0;
      end;
    ^H, ^V, ^X, #32..#255:
      if not Grid.CanEditModify then Key := #0;
  end;
  if Key <> #0 then inherited KeyPress(Key);
end;

procedure TbsSkinInplaceEdit.KeyUp(var Key: Word; Shift: TShiftState);
begin
  Grid.KeyUp(Key, Shift);
end;

procedure TbsSkinInplaceEdit.WndProc(var Message: TMessage);
begin
  case Message.Msg of
    WM_SETFOCUS:
      begin
        if (GetParentForm(Self) = nil) or GetParentForm(Self).SetFocusedControl(Grid) then Dispatch(Message);
        Exit;
      end;
    WM_LBUTTONDOWN:
      begin
        if ((GetMessageTime - FClickTime) < GetDoubleClickTime) then
          Message.Msg := WM_LBUTTONDBLCLK;
        FClickTime := 0;
      end;
  end;
  inherited WndProc(Message);
end;

procedure TbsSkinInplaceEdit.Deselect;
begin
  SendMessage(Handle, EM_SETSEL, $7FFFFFFF, Longint($FFFFFFFF));
end;

procedure TbsSkinInplaceEdit.Invalidate;
var
  Cur: TRect;
begin
  ValidateRect(Handle, nil);
  InvalidateRect(Handle, nil, True);
  Windows.GetClientRect(Handle, Cur);
  MapWindowPoints(Handle, Grid.Handle, Cur, 2);
  ValidateRect(Grid.Handle, @Cur);
  InvalidateRect(Grid.Handle, @Cur, False);
end;

procedure TbsSkinInplaceEdit.Hide;
begin
  if HandleAllocated and IsWindowVisible(Handle) then
  begin
    Invalidate;
    SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_HIDEWINDOW or SWP_NOZORDER or
      SWP_NOREDRAW);
    if Focused then Windows.SetFocus(Grid.Handle);
  end;
end;

function TbsSkinInplaceEdit.PosEqual(const Rect: TRect): Boolean;
var
  Cur: TRect;
begin
  GetWindowRect(Handle, Cur);
  MapWindowPoints(HWND_DESKTOP, Grid.Handle, Cur, 2);
  Result := EqualRect(Rect, Cur);
end;

procedure TbsSkinInplaceEdit.InternalMove(const Loc: TRect; Redraw: Boolean);
begin
  if IsRectEmpty(Loc) then Hide
  else
  begin
    CreateHandle;
    Redraw := Redraw or not IsWindowVisible(Handle);
    Invalidate;
    with Loc do
      SetWindowPos(Handle, HWND_TOP, Left, Top, Right - Left, Bottom - Top,
        SWP_SHOWWINDOW or SWP_NOREDRAW);
    BoundsChanged;
    if Redraw then Invalidate;
    if Grid.Focused then
      Windows.SetFocus(Handle);
  end;
end;

procedure TbsSkinInplaceEdit.BoundsChanged;
var
  R: TRect;
begin
  R := Rect(2, 2, Width - 2, Height);
  SendMessage(Handle, EM_SETRECTNP, 0, LongInt(@R));
  SendMessage(Handle, EM_SCROLLCARET, 0, 0);
end;

procedure TbsSkinInplaceEdit.UpdateLoc(const Loc: TRect);
begin
  InternalMove(Loc, False);
end;

function TbsSkinInplaceEdit.Visible: Boolean;
begin
  Result := IsWindowVisible(Handle);
end;

procedure TbsSkinInplaceEdit.Move(const Loc: TRect);
begin
  InternalMove(Loc, True);
end;

procedure TbsSkinInplaceEdit.SetFocus;
begin
  if IsWindowVisible(Handle) then
    Windows.SetFocus(Handle);
end;

procedure TbsSkinInplaceEdit.UpdateContents;
begin
  Text := '';
  EditMask := Grid.GetEditMask(Grid.Col, Grid.Row);
  Text := Grid.GetEditText(Grid.Col, Grid.Row);
  MaxLength := Grid.GetEditLimit;
end;

{ TbsSkinCustomGrid }

constructor TbsSkinCustomGrid.Create(AOwner: TComponent);
const
  GridStyle = [csCaptureMouse, csOpaque, csDoubleClicks];
begin
  inherited Create(AOwner);
  FHScrollBar := nil;
  FVScrollBar := nil;
  Ctl3D := False;
  if NewStyleControls then
    ControlStyle := GridStyle else
    ControlStyle := GridStyle + [csFramed];
  FCanEditModify := True;
  FColCount := 5;
  FRowCount := 5;
  FFixedCols := 1;
  FFixedRows := 1;
  FGridLineWidth := 1;
  FOptions := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine,
    goRangeSelect];
  DesignOptionsBoost := [goColSizing, goRowSizing];
  FFixedColor := clBtnFace;
  FBorderStyle := bsSingle;
  FDefaultColWidth := 64;
  FDefaultRowHeight := 20;
  FDefaultCellHeight := 20;
  FDefaultDrawing := True;
  FSaveCellExtents := True;
  FEditorMode := False;
  Picture := nil;
  Color := clWindow;
  ParentColor := False;
  TabStop := True;
  SetBounds(Left, Top, FColCount * FDefaultColWidth,
    FRowCount * FDefaultRowHeight);
  Initialize;
  FSkinDataName := 'grid';
  FGridLineColor := clWindowText;
  FInCheckScrollBars := False;
end;

destructor TbsSkinCustomGrid.Destroy;
begin
  FInplaceEdit.Free;
  inherited Destroy;
  FreeMem(FColWidths);
  FreeMem(FRowHeights);
  FreeMem(FTabStops);
end;

procedure TbsSkinCustomGrid.CMVisibleChanged;
begin
  inherited;
  if FVScrollBar <> nil then FVScrollBar.Visible := Self.Visible;
  if FHScrollBar <> nil then FHScrollBar.Visible := Self.Visible; 
end;

procedure TbsSkinCustomGrid.SetDefaultCellHeight(Value: Integer);
begin
  FDefaultCellHeight := Value;
  if FIndex = -1 then DefaultRowHeight := FDefaultCellHeight;
end;

procedure TbsSkinCustomGrid.SetGridLineColor;
begin
  FGridLineColor := Value;
  if FIndex = -1 then RePaint; 
end;

procedure TbsSkinCustomGrid.Notification;
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = FHScrollBar)
  then FHScrollBar := nil;
  if (Operation = opRemove) and (AComponent = FVScrollBar)
  then FVScrollBar := nil;
end;

procedure TbsSkinCustomGrid.SetHScrollBar;
begin
  FHScrollBar := Value;
  FHScrollBar.Enabled := True;
  FHScrollBar.Visible := False;
  FHScrollBar.OnLastChange := OnHScrollBarChange;
  FHScrollBar.OnUpButtonClick := OnHScrollBarUpButtonClick;
  FHScrollBar.OnDownButtonClick := OnHScrollBarDownButtonClick;
  UpdateScrollRange(True);
end;

procedure TbsSkinCustomGrid.SetVScrollBar;
begin
  FVScrollBar := Value;
  FVScrollBar.Enabled := True;
  FVScrollBar.Visible := False;
  FVScrollBar.OnLastChange := OnVScrollBarChange;
  FVScrollBar.OnUpButtonClick := OnVScrollBarUpButtonClick;
  FVScrollBar.OnDownButtonClick := OnVScrollBarDownButtonClick;
  UpdateScrollRange(True);
end;

procedure TbsSkinCustomGrid.OnVScrollBarUpButtonClick(Sender: TObject);
begin
  SendMessage(Handle, WM_VSCROLL,
    MakeWParam(SB_LINEDOWN, VScrollBar.Position), 0);
end;

procedure TbsSkinCustomGrid.OnVScrollBarDownButtonClick(Sender: TObject);
begin
  SendMessage(Handle, WM_VSCROLL,
    MakeWParam(SB_LINEUP, VScrollBar.Position), 0);
end;

procedure TbsSkinCustomGrid.OnHScrollBarUpButtonClick(Sender: TObject);
begin
  FHScrollBar.Position := FHScrollBar.Position + FHScrollBar.SmallChange;
  SendMessage(Handle, WM_HSCROLL,
    MakeWParam(SB_THUMBPOSITION, FHScrollBar.Position), 0);
end;

procedure TbsSkinCustomGrid.OnHScrollBarDownButtonClick(Sender: TObject);
begin
  FHScrollBar.Position := FHScrollBar.Position - FHScrollBar.SmallChange;
  SendMessage(Handle, WM_HSCROLL,
    MakeWParam(SB_THUMBPOSITION, FHScrollBar.Position), 0);
end;

procedure TbsSkinCustomGrid.OnVScrollBarChange(Sender: TObject);
begin
  SendMessage(Handle, WM_VSCROLL,
  MakeWParam(SB_THUMBPOSITION, FVScrollBar.Position), 0);
end;

procedure TbsSkinCustomGrid.OnHScrollBarChange(Sender: TObject);
begin
  SendMessage(Handle, WM_HSCROLL,
  MakeWParam(SB_THUMBPOSITION, FHScrollBar.Position), 0);
end;

function TbsSkinCustomGrid.GetNewTextRect;
var
  SR1, SR2, R: TRect;
  OX: Integer;
begin
  if FIndex < 0
  then
    begin
      Result := CellR;
      Exit;
    end
  else
    begin
      R := CellR;
      if gdFixed in AState
      then
        begin
          SR1 := FixedCellRect;
          SR2 := FixedCellTextRect;
        end
      else
        begin
          SR1 := SelectCellRect;
          SR2 := CellTextRect;
        end;

      if not IsNullRect(SR2)
      then
        begin
          OX := RectWidth(CellR) - RectWidth(SR1);
          Inc(R.Left, SR2.Left);
          Inc(R.Top, SR2.Top);
          R.Right := R.Left + RectWidth(SR2) + OX;
          R.Bottom := R.Top + RectHeight(SR2);
        end;
      Result := R;
    end
end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色香色香欲天天天影视综合网| 欧美日韩在线三区| 五月综合激情日本mⅴ| 国产亚洲综合av| 7777精品伊人久久久大香线蕉| 国产在线不卡一区| 亚洲电影一级黄| 国产精品美女久久久久久久| 日韩精品影音先锋| 欧美日韩电影一区| 91免费看片在线观看| 国产乱人伦精品一区二区在线观看| 性久久久久久久久| 一区二区三区四区中文字幕| 国产欧美日韩在线视频| 日韩一区二区三区免费看| 欧美午夜精品一区二区蜜桃| 99久久久无码国产精品| 国产成人h网站| 狠狠色丁香久久婷婷综合_中| 天堂在线亚洲视频| 亚洲一区二区三区自拍| 一区免费观看视频| 国产精品久久久久aaaa| 日本一区免费视频| 久久女同性恋中文字幕| 日韩欧美一二三| 日韩一区二区三区电影| 3751色影院一区二区三区| 精品视频在线免费| 欧美又粗又大又爽| 在线中文字幕一区| 在线中文字幕不卡| 欧美亚洲综合色| 欧美天天综合网| 欧美丝袜自拍制服另类| 在线观看日韩av先锋影音电影院| a级精品国产片在线观看| 国产jizzjizz一区二区| 成人a免费在线看| 成+人+亚洲+综合天堂| 国产.欧美.日韩| 成人自拍视频在线观看| 成人免费视频app| hitomi一区二区三区精品| 风间由美一区二区三区在线观看| 春色校园综合激情亚洲| av色综合久久天堂av综合| www.欧美日韩| 色八戒一区二区三区| 欧美专区亚洲专区| 9191成人精品久久| 精品成人在线观看| 国产视频一区在线播放| 亚洲欧洲精品天堂一级 | 久久久久久久国产精品影院| 久久久久久久久岛国免费| 国产精品乱码久久久久久| 亚洲三级免费电影| 婷婷亚洲久悠悠色悠在线播放| 日韩精品久久理论片| 久久99精品久久久| 成人手机电影网| 欧美午夜免费电影| 日韩精品一区在线| 国产精品久久国产精麻豆99网站| 洋洋av久久久久久久一区| 久久精品国产精品亚洲红杏| 懂色一区二区三区免费观看| 色就色 综合激情| 51精品秘密在线观看| 久久久综合视频| 亚洲柠檬福利资源导航| 免费观看久久久4p| 成人美女在线观看| 欧美另类变人与禽xxxxx| 久久免费视频一区| 亚洲欧美综合色| 青青青伊人色综合久久| 成人高清免费观看| 日韩欧美资源站| 亚洲欧美乱综合| 国模冰冰炮一区二区| 一本到高清视频免费精品| 欧美va天堂va视频va在线| 一色桃子久久精品亚洲| 日韩成人免费在线| 色综合久久天天综合网| 26uuu国产在线精品一区二区| 综合av第一页| 国产自产v一区二区三区c| 91成人免费网站| 欧美国产一区二区在线观看| 首页国产丝袜综合| 9i看片成人免费高清| 日韩精品在线网站| 亚洲va欧美va国产va天堂影院| 国产黑丝在线一区二区三区| 91精品国产综合久久福利软件| ...xxx性欧美| 国产一区二区免费视频| 欧美妇女性影城| 亚洲欧美成aⅴ人在线观看| 国产在线视频一区二区| 欧美日韩精品一区二区三区蜜桃 | 亚洲裸体在线观看| 国产精品一卡二| 欧美一级免费大片| 亚洲午夜精品17c| 一本大道综合伊人精品热热| 国产亚洲一区二区三区| 日本91福利区| 欧美精品在线视频| 亚洲免费视频成人| 97aⅴ精品视频一二三区| 国产网站一区二区| 国产精品一区二区在线看| 日韩片之四级片| 日产欧产美韩系列久久99| 91蜜桃传媒精品久久久一区二区| 久久久国际精品| 国产精品123| 久久久久久97三级| 激情综合网天天干| 精品国产污网站| 久久99这里只有精品| 日韩一级免费一区| 日韩高清不卡一区二区三区| 欧美精品777| 日本一区中文字幕| 日韩一区二区三区四区五区六区| 亚洲成人综合网站| 欧美精品自拍偷拍| 日韩不卡在线观看日韩不卡视频| 制服丝袜亚洲网站| 日韩国产一区二| 日韩一区和二区| 久久99深爱久久99精品| 久久天天做天天爱综合色| 激情五月激情综合网| 精品国产伦一区二区三区观看方式 | 国产乱对白刺激视频不卡| 久久品道一品道久久精品| 风间由美一区二区av101 | 中文字幕亚洲不卡| 91一区二区三区在线播放| 亚洲美女淫视频| 欧美日韩综合一区| 日韩电影一二三区| 久久久久久久久岛国免费| 成人h版在线观看| 亚洲一区中文日韩| 7777精品久久久大香线蕉| 激情综合五月天| 亚洲欧洲日产国产综合网| 色老头久久综合| 毛片不卡一区二区| 国产亚洲精品久| 91在线云播放| 日本强好片久久久久久aaa| 久久伊人蜜桃av一区二区| 91视频免费看| 天堂蜜桃一区二区三区| 久久久久久麻豆| 91国模大尺度私拍在线视频| 日本va欧美va欧美va精品| 国产午夜精品一区二区三区嫩草 | 在线免费观看日本一区| 日韩黄色免费电影| 国产片一区二区| 欧美手机在线视频| 国产一区二区三区黄视频 | 免播放器亚洲一区| 国产精品色婷婷| 欧美少妇一区二区| 激情深爱一区二区| 亚洲欧美电影一区二区| 欧美变态凌虐bdsm| 色婷婷精品久久二区二区蜜臂av | 欧美日本在线视频| 国产mv日韩mv欧美| 日韩高清欧美激情| 中文字幕一区二区三区四区| 欧美日本精品一区二区三区| 国产v综合v亚洲欧| 免费成人深夜小野草| 亚洲欧美色一区| 久久久精品日韩欧美| 欧美日韩成人综合天天影院| 不卡的电影网站| 久久av资源网| 亚洲自拍偷拍综合| 国产欧美精品一区| 日韩欧美在线123| 精品视频全国免费看| 盗摄精品av一区二区三区| 久久97超碰国产精品超碰| 亚洲伊人色欲综合网| 欧美高清在线视频| 精品国产免费一区二区三区四区|