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

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

?? bscalc.pas

?? BusinessSkinForm Ver3.95 full source_漢化版_最新
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
begin
  inherited;
  ButtonMode := True;
  FValue := 0;
  FIncrement := 1;
  FDecimal := 2;
  StopCheck := True;
  Text := '0';
  StopCheck := False;
  FromEdit := False;
  Width := 120;
  Height := 20;
  FSkinDataName := 'buttonedit';
  OnButtonClick := ButtonClick;
  FCalc := TbsPopupCalculatorForm.Create(Self);
  FCalc.Visible := False;
  FCalc.CalcEdit := Self;
  FCalc.Parent := Self;
  FMemory := 0.0;
  FPrecision := DefCalcPrecision;
  FCalcButtonSkinDataName := 'toolbutton';
  FCalcDisplayLabelSkinDataName := 'label';
  FAlphaBlend := False;
  FAlphaBlendValue := 0;
end;

destructor TbsSkinCalcEdit.Destroy;
begin
  FCalc.Free;
  inherited;
end;

procedure TbsSkinCalcEdit.CMCancelMode(var Message: TCMCancelMode);
begin
  if (Message.Sender <> FCalc) and
     not FCalc.ContainsControl(Message.Sender)
  then
    CloseUp;
end;

procedure TbsSkinCalcEdit.CloseUp;
begin
  if FCalc.Visible then FCalc.Hide;
  if CheckW2KWXP and FAlphaBlend
  then
    SetWindowLong(FCalc.Handle, GWL_EXSTYLE,
                  GetWindowLong(Handle, GWL_EXSTYLE) and not WS_EX_LAYERED);
end;

procedure TbsSkinCalcEdit.DropDown;
var
  i, Y: Integer;
  P: TPoint;
begin
 with FCalc do
  begin
    SkinData := Self.SkinData;
    FCalcPanel.SkinData := Self.SkinData;
    FDisplayLabel.DefaultFont := FDefaultFont;
    FDisplayLabel.SkinDataName := FCalcDisplayLabelSkinDataName;
    FDisplayLabel.SkinData := Self.SkinData;
    for i := 0 to FCalcPanel.ControlCount - 1 do
    if FCalcPanel.Controls[i] is TbsSkinSpeedButton then
    with TbsSkinSpeedButton(FCalcPanel.Controls[i]) do
    begin
      DefaultFont := Self.DefaultFont;
      DefaultHeight := 25;
      SkinDataName := FCalcButtonSkinDataName;
      SkinData := Self.SkinData;
    end
    else
    if FCalcPanel.Controls[i] is TbsSkinStdLabel then
    with TbsSkinStdLabel(FCalcPanel.Controls[i]) do
    begin
      DefaultFont := Self.DefaultFont;
      SkinData := Self.SkinData;
    end;
    TCalculatorPanel(FCalcPanel).FMemory := Self.FMemory;
    TCalculatorPanel(FCalcPanel).UpdateMemoryLabel;
    TCalculatorPanel(FCalcPanel).FPrecision := Max(2, Self.Precision);
    TCalculatorPanel(FCalcPanel).FBeepOnError := False;
    if Self.FValue <> 0 then begin
      TCalculatorPanel(FCalcPanel).DisplayValue := Self.FValue;
      TCalculatorPanel(FCalcPanel).FStatus := csFirst;
      TCalculatorPanel(FCalcPanel).FOperator := '=';
    end;
    Width := 210 + BtnOffset * 2;
    //
    if FIndex = -1
    then
      Height := FCalcPanel.Height + FDisplayLabel.Height + 2
    else
      Height := FCalcPanel.Height + FDisplayLabel.Height +
      (RectHeight(SkinRect) - RectHeight(ClRect));
    //
    Height := Height + BtnOffset;
    P := Self.Parent.ClientToScreen(Point(Self.Left, Self.Top));
    Y := P.Y + Self.Height;
    if Y + FCalc.Height > Screen.Height then Y := P.Y - FCalc.Height;
    if P.X + FCalc.Width > Screen.Width
    then P.X := Screen.Width - FCalc.Width;
    if P.X < 0 then P.X := 0;
    FCalc.Left := P.X;
    FCalc.Top := Y;
    //
    if CheckW2KWXP and FAlphaBlend
    then
      begin
        SetWindowLong(FCalc.Handle, GWL_EXSTYLE,
                      GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
        SetAlphaBlendTransparent(FCalc.Handle, 0)
      end;
    FCalc.Show(P.X, Y);
    //
    if FAlphaBlend and not FAlphaBlendAnimation and CheckW2KWXP
    then
      begin
        Application.ProcessMessages;
        SetAlphaBlendTransparent(FCalc.Handle, FAlphaBlendValue)
      end
    else
    if CheckW2KWXP and FAlphaBlend and FAlphaBlendAnimation
    then
      begin
        Application.ProcessMessages;
        I := 0;
        repeat
          Inc(i, 2);
          if i > FAlphaBlendValue then i := FAlphaBlendValue;
          SetAlphaBlendTransparent(FCalc.Handle, i);
        until i >= FAlphaBlendValue;
      end;
  end;
end;

procedure TbsSkinCalcEdit.ButtonClick(Sender: TObject);
begin
  if FCalc.Visible then CloseUp else DropDown;
end;

procedure TbsSkinCalcEdit.SetValueType(NewType: TbsValueType);
begin
  if FValueType <> NewType
  then
    begin
      FValueType := NewType;
      if FValueType = vtInteger
      then
        begin
          FIncrement := Round(FIncrement);
          if FIncrement = 0 then FIncrement := 1;
        end;
  end;
end;

procedure TbsSkinCalcEdit.SetDecimal(NewValue: Byte);
begin
  if FDecimal <> NewValue then begin
    FDecimal := NewValue;
  end;
end;

function TbsSkinCalcEdit.CheckValue;
begin
  Result := NewValue;
  if (FMaxValue <> FMinValue)
  then
    begin
      if NewValue < FMinValue then
      Result := FMinValue
      else if NewValue > FMaxValue then
      Result := FMaxValue;
    end;
end;

procedure TbsSkinCalcEdit.SetMinValue;
begin
  FMinValue := AValue;
end;

procedure TbsSkinCalcEdit.SetMaxValue;
begin
  FMaxValue := AValue;
end;

function TbsSkinCalcEdit.IsNumText;

function GetMinus: Boolean;
var
  i: Integer;
  S: String;
begin
  S := AText;
  i := Pos('-', S);
  if i > 1
  then
    Result := False
  else
    begin
      Delete(S, i, 1);
      Result := Pos('-', S) = 0;
    end;
end;

function GetP: Boolean;
var
  i: Integer;
  S: String;
begin
  S := AText;
  i := Pos(DecimalSeparator, S);
  if i = 1
  then
    Result := False
  else
    begin
      Delete(S, i, 1);
      Result := Pos(DecimalSeparator, S) = 0;
    end;
end;

const
  EditChars = '01234567890-';
var
  i: Integer;
  S: String;
begin
  S := EditChars;
  Result := True;
  if ValueType = vtFloat
  then
    S := S + DecimalSeparator;
  if (Text = '') or (Text = '-')
  then
    begin
      Result := False;
      Exit;
    end;

  for i := 1 to Length(Text) do
  begin
    if Pos(Text[i], S) = 0
    then
      begin
        Result := False;
        Break;
      end;
  end;

  Result := Result and GetMinus;

  if ValueType = vtFloat
  then
    Result := Result and GetP;

end;

procedure TbsSkinCalcEdit.Change;
var
  NewValue, TmpValue: Double;
begin
  if FromEdit then Exit;
  if not StopCheck and IsNumText(Text)
  then
    begin
      if ValueType = vtFloat
      then TmpValue := StrToFloat(Text)
      else TmpValue := StrToInt(Text);
      NewValue := CheckValue(TmpValue);
      if NewValue <> FValue
      then
        begin
          FValue := NewValue;
        end;
      if NewValue <> TmpValue
      then
        begin
          FromEdit := True;
          if ValueType = vtFloat
          then Text := FloatToStrF(NewValue, ffFixed, 15, FDecimal)
          else Text := IntToStr(Round(FValue));
          FromEdit := False;
        end;
    end;
  inherited;  
end;

procedure TbsSkinCalcEdit.CMTextChanged;
begin
  inherited;
end;

procedure TbsSkinCalcEdit.SetValue;
begin
  FValue := CheckValue(AValue);
  StopCheck := True;
  if ValueType = vtFloat
  then
    Text := FloatToStrF(CheckValue(AValue), ffFixed, 15, FDecimal)
  else
    Text := IntToStr(Round(CheckValue(AValue)));
  StopCheck := False;
end;

procedure TbsSkinCalcEdit.KeyPress(var Key: Char);
begin
  if not IsValidChar(Key) then
  begin
    Key := #0;
    MessageBeep(0)
  end;
  if Key <> #0 then
  if FCalc.Visible
  then
    CloseUp
  else
    inherited KeyPress(Key);
end;

function TbsSkinCalcEdit.IsValidChar(Key: Char): Boolean;
begin
  if ValueType = vtInteger
  then
    Result := (Key in ['-', '0'..'9']) or
     ((Key < #32) and (Key <> Chr(VK_RETURN)))
  else
  Result := (Key in [DecimalSeparator, '-', '0'..'9']) or
    ((Key < #32) and (Key <> Chr(VK_RETURN)));
  if ReadOnly and Result and ((Key >= #32) or
     (Key = Char(VK_BACK)) or (Key = Char(VK_DELETE)))
  then
    Result := False;

  if (Key = DecimalSeparator) and (Pos(DecimalSeparator, Text) <> 0)
  then
    Result := False
  else
  if (Key = '-') and (Pos('-', Text) <> 0)
  then
    Result := False;
end;

procedure TbsSkinCalcEdit.WMKillFocus(var Message: TWMKillFocus);
begin
  inherited;
  CloseUp;
end;

constructor TbsPopupCalculatorForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  BorderStyle := bvFrame;
  ControlStyle := ControlStyle + [csNoDesignVisible, csReplicatable];
  CalcEdit := nil;
  { DisplayPanel }
  FDisplayLabel := TbsSkinLabel.Create(Self);
  with FDisplayLabel do begin
    Align := alTop;
    Parent := Self;
    AutoSize := False;
    Alignment := taRightJustify;
    Caption := '0';
    BorderStyle := bvNone;
    DefaultHeight := 20;
    Visible := True;
  end;
  { CalcPanel }
  FCalcPanel := TCalculatorPanel.CreateLayout(Self);
  with TCalculatorPanel(FCalcPanel) do begin
    Align := alTop;
    Parent := Self;
    FControl := FDisplayLabel;
    BorderStyle := bvNone;
    OnOkClick := OkClick;
    OnCancelClick := CancelClick;
    Visible := True;
  end;
end;

destructor TbsPopupCalculatorForm.Destroy;
begin
  FDisplayLabel.Free;
  FCalcPanel.Free;
  inherited;
end;


procedure TbsPopupCalculatorForm.Show(X, Y: Integer);
begin
  SetWindowPos(Handle, HWND_TOP, X, Y, 0, 0,
      SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW);
  Visible := True;
end;

procedure TbsPopupCalculatorForm.Hide;
begin
  SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_NOZORDER or
      SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_HIDEWINDOW);
  Visible := False;
end;

procedure TbsPopupCalculatorForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    Style := WS_POPUP;
    ExStyle := WS_EX_TOOLWINDOW;
    AddBiDiModeExStyle(ExStyle);
    WindowClass.Style := CS_SAVEBITS;
    if CheckWXP then
      WindowClass.Style := WindowClass.style or CS_DROPSHADOW_;
  end;
end;

procedure TbsPopupCalculatorForm.WMMouseActivate(var Message: TMessage);
begin
  Message.Result := MA_NOACTIVATE;
end;

procedure TbsPopupCalculatorForm.OkClick(Sender: TObject);
begin
  if CalcEdit <> nil
  then
    begin
      CalcEdit.Value := TCalculatorPanel(FCalcPanel).DisplayValue;
      CalcEdit.CloseUp;
    end;
end;

procedure TbsPopupCalculatorForm.CancelClick(Sender: TObject);
begin
  if CalcEdit <> nil then CalcEdit.CloseUp;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频欧美精品| 亚洲一区日韩精品中文字幕| 日韩毛片高清在线播放| 美女一区二区三区| 色婷婷久久久亚洲一区二区三区 | 麻豆精品久久精品色综合| 99视频一区二区三区| 日韩视频国产视频| 亚洲一级片在线观看| av电影在线观看完整版一区二区| 欧美一区二区人人喊爽| 一级精品视频在线观看宜春院| 国产精品亚洲一区二区三区妖精 | 欧美日韩精品一区二区在线播放 | 99精品欧美一区二区蜜桃免费 | 欧美三日本三级三级在线播放| 国产精品五月天| 国产综合久久久久久久久久久久| 欧美午夜免费电影| 一区二区三区四区不卡视频| 91美女蜜桃在线| 一区二区三区小说| 91亚洲午夜精品久久久久久| 国产精品久久99| 99麻豆久久久国产精品免费优播| 国产网红主播福利一区二区| 国产呦萝稀缺另类资源| www一区二区| 国内成人自拍视频| 久久影院午夜论| 国产99久久久精品| 国产精品电影一区二区| 波多野结衣91| 一区二区三区在线视频观看| 色综合久久久久| 亚洲高清在线视频| 欧美一区二区播放| 国产麻豆精品久久一二三| 国产午夜精品一区二区三区嫩草 | 日韩欧美一卡二卡| 久久99精品国产| 久久蜜桃av一区二区天堂 | 亚洲欧美一区二区三区孕妇| 不卡一区二区三区四区| 亚洲日韩欧美一区二区在线| 欧洲精品视频在线观看| 日韩在线卡一卡二| 久久综合九色欧美综合狠狠 | 久久99精品一区二区三区三区| 日韩精品一区二| 成人国产亚洲欧美成人综合网| 日韩毛片在线免费观看| 欧美肥妇free| 国产精品乡下勾搭老头1| 中文字幕欧美一| 欧美日韩精品欧美日韩精品| 久久国产剧场电影| 国产精品久久久久久久久晋中 | 色综合天天视频在线观看 | 成人一区二区三区在线观看| 亚洲天堂精品在线观看| 91精品欧美福利在线观看| 国产精品一级在线| 亚洲一区二区视频在线观看| 日韩情涩欧美日韩视频| 91天堂素人约啪| 久久99精品国产麻豆婷婷洗澡| 亚洲色大成网站www久久九九| 欧美一区二区三区免费大片 | 亚洲无线码一区二区三区| 日韩一级完整毛片| 91香蕉视频黄| 蜜桃av一区二区在线观看| 国产精品福利一区| 日韩丝袜美女视频| 色先锋aa成人| 国产高清无密码一区二区三区| 亚洲午夜久久久久久久久久久| 欧美精品一区二区蜜臀亚洲| 欧美三级日韩三级| 成人动漫av在线| 精品一区二区在线播放| 亚洲va韩国va欧美va| 成人欧美一区二区三区视频网页| 日韩一区二区三区电影在线观看| 91免费看视频| 国产盗摄视频一区二区三区| 麻豆精品视频在线| 日韩精品1区2区3区| 亚洲免费在线观看| 国产精品国产三级国产aⅴ中文| 亚洲精品一区二区精华| 欧美日韩国产美| 欧美无乱码久久久免费午夜一区| 国v精品久久久网| 极品尤物av久久免费看| 日韩国产精品91| 亚洲尤物在线视频观看| 中文字幕一区二区三区蜜月| 久久久久久**毛片大全| 欧美电影免费观看高清完整版在线观看 | 久久9热精品视频| 亚洲a一区二区| 亚洲国产日韩在线一区模特| 亚洲欧美电影院| 国产精品国产三级国产| 亚洲欧美怡红院| 亚洲麻豆国产自偷在线| 国产精品国产三级国产aⅴ中文| 中文字幕精品三区| 中文av一区二区| 国产精品久久综合| 亚洲天天做日日做天天谢日日欢 | 九一久久久久久| 美女爽到高潮91| 韩国三级在线一区| 国产专区欧美精品| 国产宾馆实践打屁股91| thepron国产精品| 色哟哟一区二区| 欧美日本韩国一区二区三区视频| 在线不卡一区二区| 日韩亚洲欧美在线| 欧美精品一区二区三区在线| 国产视频在线观看一区二区三区| 中文字幕巨乱亚洲| 一区二区三区在线影院| 亚瑟在线精品视频| 久久国产剧场电影| 成人精品视频一区二区三区 | 96av麻豆蜜桃一区二区| 色偷偷久久一区二区三区| 欧美在线看片a免费观看| 欧美精选一区二区| 久久亚洲精品小早川怜子| 中文字幕精品三区| 亚洲图片欧美色图| 国产综合成人久久大片91| 成人免费三级在线| 欧美日韩国产综合一区二区 | 极品少妇xxxx精品少妇| 国产**成人网毛片九色| 一本大道久久a久久精品综合| 欧美久久久久免费| 国产日韩欧美一区二区三区综合| 亚洲日本乱码在线观看| 日韩精品亚洲一区| 成人avav在线| 91精品国产91久久久久久最新毛片 | 国产一区视频导航| 91捆绑美女网站| 欧美成人福利视频| 亚洲同性gay激情无套| 蜜芽一区二区三区| 91偷拍与自偷拍精品| 日韩一区二区视频在线观看| 国产精品成人免费在线| 蜜桃久久精品一区二区| 91麻豆免费观看| 久久久久久亚洲综合| 午夜精品在线看| 97久久精品人人做人人爽50路| 制服丝袜一区二区三区| 亚洲精品五月天| 国产伦精品一区二区三区免费| 日本精品一级二级| 中国色在线观看另类| 麻豆高清免费国产一区| 精品视频一区二区不卡| 国产日韩欧美综合一区| 日本欧美在线看| 色婷婷亚洲婷婷| 国产精品国产自产拍高清av| 久久国产精品99久久人人澡| 91久久精品一区二区三| 亚洲国产精品二十页| 美女在线一区二区| 欧美日产在线观看| 亚洲男人的天堂在线观看| 国产成人精品免费| 久久综合久久综合久久综合| 日韩高清国产一区在线| 欧美亚洲一区二区三区四区| 亚洲欧洲日韩在线| 成人性生交大片免费看视频在线 | 播五月开心婷婷综合| 久久精品欧美一区二区三区麻豆| 偷拍亚洲欧洲综合| 在线免费观看视频一区| 亚洲欧美激情小说另类| 一本色道久久加勒比精品| 国产精品美女久久久久久久久久久 | 欧美激情在线免费观看| 国产麻豆精品视频| 韩国成人福利片在线播放| 欧美一二三四在线| 午夜精品一区二区三区免费视频| 欧美天堂亚洲电影院在线播放| 国产精品电影院| 91蝌蚪porny|