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

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

?? tflatbuttonunit.pas

?? 工程管理部門配件倉庫屬于生產輔助倉庫
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
begin
  inherited;

  // mouse is in control ?
  P := ClientToScreen(Point(X, Y));
  if (MouseInControl <> Self) and (FindDragTarget(P, True) = Self) then
  begin
    if Assigned(MouseInControl) then
      MouseInControl.MouseLeave;
    // the application is active ?
    if (GetActiveWindow <> 0) then
    begin
      if MouseTimer.Enabled then
        MouseTimer.Enabled := False;
      MouseInControl := Self;
      MouseTimer.OnTimer := MouseTimerHandler;
      MouseTimer.Enabled := True;
      MouseEnter;
    end;
  end;

  if FDragging then
  begin
    if not FDown then
      NewState := bsUp
    else
      NewState := bsExclusive;
    if (X >= 0) and (X < ClientWidth) and (Y >= 0) and (Y <= ClientHeight) then
      if FDown then
        NewState := bsExclusive
      else
        NewState := bsDown;
    if NewState <> FState then
    begin
      FState := NewState;
      Invalidate;
    end;
  end;
end;

procedure TFlatButton.MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  DoClick: Boolean;
begin
  inherited MouseUp(Button, Shift, X, Y);
  if FDragging then
  begin
    FDragging := False;
    DoClick := (X >= 0) and (X < ClientWidth) and (Y >= 0) and (Y <= ClientHeight);
    if FGroupIndex = 0 then
    begin
      // Redraw face in-case mouse is captured
      FState := bsUp;
      FMouseInControl := False;
      if DoClick and not (FState in [bsExclusive, bsDown]) then
        Invalidate;
    end
    else
      if DoClick then
      begin
        SetDown(not FDown);
        if FDown then Repaint;
      end
      else
      begin
        if FDown then FState := bsExclusive;
        Repaint;
      end;
    if DoClick then Click else MouseLeave;
    UpdateTracking;
  end;
end;

procedure TFlatButton.Click;
begin
  if Parent <> nil then
    GetParentForm(self).ModalResult := FModalResult;
  inherited Click;
end;

function TFlatButton.GetPalette: HPALETTE;
begin
  Result := FGlyph.Palette;
end;

procedure TFlatButton.SetColors (Index: Integer; Value: TColor);
begin
  case Index of
    0: FFocusedColor := Value;
    1: FDownColor := Value;
    2: FBorderColor := Value;
    3: FColorHighlight := Value;
    4: FColorShadow := Value;
  end;
  Invalidate;
end;

procedure TFlatButton.CalcAdvColors;
begin
  if FUseAdvColors then
  begin
    FFocusedColor := CalcAdvancedColor(Color, FFocusedColor, FAdvColorFocused, lighten);
    FDownColor := CalcAdvancedColor(Color, FDownColor, FAdvColorDown, darken);
    FBorderColor := CalcAdvancedColor(Color, FBorderColor, FAdvColorBorder, darken);
  end;
end;

procedure TFlatButton.SetAdvColors (Index: Integer; Value: TAdvColors);
begin
  case Index of
    0: FAdvColorFocused := Value;
    1: FAdvColorDown := Value;
    2: FAdvColorBorder := Value;
  end;
  CalcAdvColors;
  Invalidate;
end;

procedure TFlatButton.SetUseAdvColors (Value: Boolean);
begin
  if Value <> FUseAdvColors then
  begin
    FUseAdvColors := Value;
    ParentColor := Value;
    CalcAdvColors;
    Invalidate;
  end;
end;

procedure TFlatButton.SetGlyph (value: TBitmap);
begin
  if value <> FGlyph then
  begin
    FGlyph.Assign(value);
    if not FGlyph.Empty then
    begin
      if FGlyph.Width mod FGlyph.Height = 0 then
      begin
        FNumGlyphs := FGlyph.Width div FGlyph.Height;
        if FNumGlyphs > 4 then FNumGlyphs := 1;
      end;
    end;
    Invalidate;
  end;
end;

procedure TFlatButton.SetNumGlyphs (value: TNumGlyphs);
begin
  if value <> FNumGlyphs then
  begin
    FNumGlyphs := value;
    Invalidate;
  end;
end;

procedure TFlatButton.UpdateExclusive;
var
  Msg: TMessage;
begin
  if (FGroupIndex <> 0) and (Parent <> nil) then
  begin
    Msg.Msg := CM_BUTTONPRESSED;
    Msg.WParam := FGroupIndex;
    Msg.LParam := Longint(Self);
    Msg.Result := 0;
    Parent.Broadcast(Msg);
  end;
end;

procedure TFlatButton.SetDown (Value: Boolean);
begin
  if FGroupIndex = 0 then Value := False;
  if Value <> FDown then
  begin
    if FDown and (not FAllowAllUp) then Exit;
    FDown := Value;
    if Value then
    begin
      if FState = bsUp then Invalidate;
      FState := bsExclusive
    end
    else
    begin
      FState := bsUp;
      Repaint;
    end;
    if Value then UpdateExclusive;
  end;
end;

procedure TFlatButton.SetGroupIndex (Value: Integer);
begin
  if FGroupIndex <> Value then
  begin
    FGroupIndex := Value;
    UpdateExclusive;
  end;
end;

procedure TFlatButton.SetLayout (Value: TButtonLayout);
begin
  if FLayout <> Value then
  begin
    FLayout := Value;
    Invalidate;
  end;
end;

procedure TFlatButton.SetMargin (Value: Integer);
begin
  if (Value <> FMargin) and (Value >= -1) then
  begin
    FMargin := Value;
    Invalidate;
  end;
end;

procedure TFlatButton.SetSpacing (Value: Integer);
begin
  if Value <> FSpacing then
  begin
    FSpacing := Value;
    Invalidate;
  end;
end;

procedure TFlatButton.SetAllowAllUp (Value: Boolean);
begin
  if FAllowAllUp <> Value then
  begin
    FAllowAllUp := Value;
    UpdateExclusive;
  end;
end;

procedure TFlatButton.WMLButtonDblClk (var Message: TWMLButtonDown);
begin
  inherited;
  if FDown then DblClick;
end;

procedure TFlatButton.CMEnabledChanged (var Message: TMessage);
begin
  inherited;
  if not Enabled then
  begin
    FMouseInControl := False;
    FState := bsDisabled;
    RemoveMouseTimer;
  end;
  UpdateTracking;
  Invalidate;
end;

procedure TFlatButton.CMButtonPressed (var Message: TMessage);
var
  Sender: TFlatButton;
begin
  if Message.WParam = FGroupIndex then
  begin
    Sender := TFlatButton(Message.LParam);
    if Sender <> Self then
    begin
      if Sender.Down and FDown then
      begin
        FDown := False;
        FState := bsUp;
        Invalidate;
      end;
      FAllowAllUp := Sender.AllowAllUp;
    end;
  end;
end;

procedure TFlatButton.CMDialogChar (var Message: TCMDialogChar);
begin
  with Message do
    if IsAccel(CharCode, Caption) and Enabled then
    begin
      Click;
      Result := 1;
    end else
      inherited;
end;

procedure TFlatButton.CMFontChanged (var Message: TMessage);
begin
  Invalidate;
end;

procedure TFlatButton.CMTextChanged (var Message: TMessage);
begin
  Invalidate;
end;

procedure TFlatButton.CMSysColorChange (var Message: TMessage);
begin
  if FUseAdvColors then
  begin
    ParentColor := True;
    CalcAdvColors;
  end;
  Invalidate;
end;

procedure TFlatButton.CMParentColorChanged (var Message: TWMNoParams);
begin
  inherited;
  if FUseAdvColors then
  begin
    ParentColor := True;
    CalcAdvColors;
  end;
  Invalidate;
end;

procedure TFlatButton.MouseEnter;
begin
  if Enabled and not FMouseInControl then
  begin
    FMouseInControl := True;
    Repaint;
  end;
end;

procedure TFlatButton.MouseLeave;
begin
  if Enabled and FMouseInControl and not FDragging then
  begin
    FMouseInControl := False;
    RemoveMouseTimer;
    Invalidate;
  end;
end;

procedure TFlatButton.MouseTimerHandler (Sender: TObject);
var
  P: TPoint;
begin
  GetCursorPos (P);
  if FindDragTarget(P, True) <> Self then
    MouseLeave;
end;

procedure TFlatButton.RemoveMouseTimer;
begin
  if MouseInControl = Self then
  begin
    MouseTimer.Enabled := False;
    MouseInControl := nil;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产福利精品| 天天av天天翘天天综合网| 中文字幕中文字幕一区| 激情成人综合网| 91精品国产综合久久福利软件| 中文字幕av一区二区三区免费看| 粉嫩在线一区二区三区视频| 欧美激情一区二区三区四区| 国产精品一区二区在线播放| 欧美成人精品3d动漫h| 国产福利91精品一区| 日韩激情一二三区| 欧美精品v国产精品v日韩精品| 亚洲激情成人在线| 欧美一区二区三区喷汁尤物| 麻豆国产精品官网| 国产午夜精品一区二区三区四区| 国产精品乡下勾搭老头1| 久久久91精品国产一区二区三区| 精品在线视频一区| 亚洲国产精品ⅴa在线观看| 国产成人av一区二区三区在线观看| 中文字幕国产一区| 国精品**一区二区三区在线蜜桃| 4hu四虎永久在线影院成人| 国产综合色精品一区二区三区| 国产日韩精品一区二区三区| 99精品国产99久久久久久白柏| 亚洲人一二三区| 欧美大片拔萝卜| 成人动漫一区二区在线| 亚洲线精品一区二区三区八戒| 69精品人人人人| 加勒比av一区二区| 亚洲欧洲99久久| 欧美一二三区在线观看| 国产美女视频91| 午夜精品一区二区三区电影天堂 | 亚洲乱码国产乱码精品精98午夜| 91麻豆国产福利精品| 日韩国产欧美在线播放| 国产精品视频一区二区三区不卡 | 色诱亚洲精品久久久久久| 亚洲欧洲日韩一区二区三区| 日韩欧美国产一二三区| 99re免费视频精品全部| 免费一级欧美片在线观看| 国产精品美女久久久久久久| 亚洲美女少妇撒尿| 精品久久99ma| 91成人在线精品| 国产一区二区三区综合| 丝袜美腿亚洲色图| 国产精品激情偷乱一区二区∴| 欧美福利视频一区| 成人av资源在线| 日韩不卡一区二区三区| 亚洲精品福利视频网站| 亚洲精品在线观| 欧美色网一区二区| 国产精品小仙女| 国产在线精品视频| 午夜电影一区二区| 一区二区三区电影在线播| 久久影院午夜片一区| 欧洲一区二区三区免费视频| 国产毛片精品视频| 美腿丝袜在线亚洲一区| 亚洲激情男女视频| 国产欧美日韩在线视频| 精品91自产拍在线观看一区| 91精品国产欧美一区二区| 色婷婷久久99综合精品jk白丝 | 成人网在线播放| 韩国女主播一区| 蜜桃精品在线观看| 午夜国产精品一区| 亚洲动漫第一页| 亚洲欧美日韩国产手机在线| 久久综合狠狠综合| 久久久噜噜噜久久人人看 | 成人免费看黄yyy456| 日韩中文字幕av电影| 肉肉av福利一精品导航| 午夜精品123| 久久国产福利国产秒拍| 国产精品中文欧美| 岛国精品一区二区| 色吧成人激情小说| 欧美猛男男办公室激情| 91精品国产品国语在线不卡| 亚洲一区自拍偷拍| 轻轻草成人在线| 国产乱码字幕精品高清av| 福利一区二区在线观看| gogo大胆日本视频一区| 欧美日韩中字一区| 日韩免费观看高清完整版| 国产三级三级三级精品8ⅰ区| 久久久亚洲精华液精华液精华液| 国产精品嫩草影院com| 一区二区三国产精华液| 日本不卡一区二区| 国产sm精品调教视频网站| 91麻豆国产福利在线观看| 91麻豆精品国产91久久久更新时间| 欧美xxxx在线观看| 国产精品不卡在线| 日欧美一区二区| 粉嫩av一区二区三区在线播放| 色综合久久88色综合天天| 日韩视频一区二区在线观看| 国产精品嫩草影院av蜜臀| 亚洲第一激情av| 国产专区综合网| 欧美性猛交xxxx乱大交退制版 | 日韩av成人高清| 国产成人欧美日韩在线电影| 日本久久电影网| 久久欧美中文字幕| 亚洲伊人色欲综合网| 国产在线国偷精品免费看| 欧美亚洲国产bt| 中文字幕成人网| 麻豆精品一二三| 欧洲一区在线电影| 国产欧美精品一区二区色综合| 亚洲福利视频一区| www.66久久| 久久亚洲一区二区三区明星换脸| 亚洲品质自拍视频| 国产在线日韩欧美| 91精品国产综合久久香蕉麻豆| 中文字幕一区二区三区不卡在线 | 大白屁股一区二区视频| 日韩午夜在线播放| 亚洲综合在线电影| 懂色av一区二区三区蜜臀| 欧美一级二级三级蜜桃| 一区二区三区资源| 大陆成人av片| 久久综合网色—综合色88| 丝袜美腿亚洲一区二区图片| 色婷婷综合久色| 亚洲日韩欧美一区二区在线| 国产成人福利片| 久久―日本道色综合久久| 青青青爽久久午夜综合久久午夜 | 91视频精品在这里| 国产亚洲精品aa午夜观看| 麻豆精品蜜桃视频网站| 日韩丝袜情趣美女图片| 国产呦萝稀缺另类资源| 视频一区二区三区入口| 日本一区二区三区四区在线视频| 欧美日韩高清一区二区不卡| 久久久精品免费观看| 在线亚洲一区二区| 久久精品男人天堂av| 91免费国产视频网站| 国产精品123区| av影院午夜一区| 91亚洲精华国产精华精华液| 午夜视频一区二区三区| 国产日韩精品一区二区三区| 亚洲风情在线资源站| 日韩欧美一区二区视频| 久久综合色8888| 丝袜美腿成人在线| 欧美一区二区精品久久911| 日韩av午夜在线观看| 欧美一区二区三区系列电影| 日韩精品视频网站| 欧美精品第一页| 老司机午夜精品| 2024国产精品视频| 国产精品一区二区在线观看不卡 | 激情五月婷婷综合| 久久综合资源网| 成人妖精视频yjsp地址| 中文字幕一区二区三区不卡在线| 一本到三区不卡视频| 性久久久久久久久久久久| 日韩欧美精品在线| 国产成人免费av在线| 成人欧美一区二区三区| 欧美伊人久久久久久久久影院| 丝袜脚交一区二区| 国产亚洲一区字幕| 欧美一区二区三区电影| 99久久亚洲一区二区三区青草 | 亚洲精品日产精品乱码不卡| 一区二区免费看| 北条麻妃国产九九精品视频| 精品一区二区成人精品| 亚洲精品视频免费观看| 欧美精品一区男女天堂| 精品国产免费一区二区三区四区| 国产99久久久国产精品| 亚洲精品综合在线|