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

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

?? curredit.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
begin
  if PopupVisible and (UpCase(Key) in ['0'..'9', DecimalSeparator, '.', ',',
    '+', '-', '*', '/', '_', '=', 'C', 'R', 'Q', '%', #8, #13] -
    [ThousandSeparator]) then
  begin
    THack(FPopup).KeyPress(Key);
    Key := #0;
  end;
  if Key in ['.', ','] - [ThousandSeparator] then
    Key := DecimalSeparator;
  inherited KeyPress(Key);
  if (Key in [#32..#255]) and not IsValidChar(Key) then begin
    if BeepOnError then MessageBeep(0);
    Key := #0;
  end
  else if Key = #27 then begin
    Reset;
    Key := #0;
  end;
end;

procedure TCustomNumEdit.Reset;
begin
  DataChanged;
  SelectAll;
end;

procedure TCustomNumEdit.SetZeroEmpty(Value: Boolean);
begin
  if FZeroEmpty <> Value then begin
    FZeroEmpty := Value;
    DataChanged;
  end;
end;

procedure TCustomNumEdit.SetBeepOnError(Value: Boolean);
begin
  if FBeepOnError <> Value then begin
    FBeepOnError := Value;
    UpdatePopup;
  end;
end;

procedure TCustomNumEdit.SetAlignment(Value: TAlignment);
begin
  if FAlignment <> Value then begin
    FAlignment := Value;
    Invalidate;
  end;
end;

procedure TCustomNumEdit.SetDisplayFormat(const Value: string);
begin
  if DisplayFormat <> Value then begin
    FDisplayFormat := Value;
    Invalidate;
    DataChanged;
  end;
end;

function TCustomNumEdit.GetDisplayFormat: string;
begin
  Result := FDisplayFormat;
end;

procedure TCustomNumEdit.SetFocused(Value: Boolean);
begin
  if FFocused <> Value then begin
    FFocused := Value;
    Invalidate;
    FFormatting := True;
    try
      DataChanged;
    finally
      FFormatting := False;
    end;
  end;
end;

procedure TCustomNumEdit.SetFormatOnEditing(Value: Boolean);
begin
  if FFormatOnEditing <> Value then begin
    FFormatOnEditing := Value;
    if FFormatOnEditing then inherited Alignment := Alignment
    else inherited Alignment := taLeftJustify;
    if FFormatOnEditing and FFocused then ReformatEditText
    else if FFocused then begin
      UpdateData;
      DataChanged;
    end;
  end;
end;

procedure TCustomNumEdit.SetDecimalPlaces(Value: Cardinal);
begin
  if FDecimalPlaces <> Value then begin
    FDecimalPlaces := Value;
    DataChanged;
    Invalidate;
  end;
end;

function TCustomNumEdit.FormatDisplayText(Value: Extended): string;
begin
  if DisplayFormat <> '' then
    Result := FormatFloat(DisplayFormat, Value)
  else
    Result := FloatToStr(Value);
end;

function TCustomNumEdit.GetDisplayText: string;
begin
  Result := FormatDisplayText(FValue);
end;

procedure TCustomNumEdit.Clear;
begin
  Text := '';
end;

procedure TCustomNumEdit.DataChanged;
var
  EditFormat: string;
begin
  EditFormat := '0';
  if FDecimalPlaces > 0 then
    EditFormat := EditFormat + '.' + MakeStr('#', FDecimalPlaces);
  if (FValue = 0.0) and FZeroEmpty then
    EditText := ''
  else
    EditText := FormatFloat(EditFormat, FValue);
end;

function TCustomNumEdit.CheckValue(NewValue: Extended;
  RaiseOnError: Boolean): Extended;
begin
  Result := NewValue;
  if (FMaxValue <> FMinValue) then begin
    if (FMaxValue > FMinValue) then begin
      if NewValue < FMinValue then Result := FMinValue
      else if NewValue > FMaxValue then Result := FMaxValue;
    end
    else begin
      if FMaxValue = 0 then begin
        if NewValue < FMinValue then Result := FMinValue;
      end
      else if FMinValue = 0 then begin
        if NewValue > FMaxValue then Result := FMaxValue;
      end;
    end;
    if RaiseOnError and (Result <> NewValue) then
      raise ERangeError.CreateFmt(ReplaceStr(ResStr(SOutOfRange), '%d', '%.*f'),
        [DecimalPlaces, FMinValue, DecimalPlaces, FMaxValue]);
  end;
end;

procedure TCustomNumEdit.CheckRange;
begin
  if not (csDesigning in ComponentState) and CheckOnExit then
    CheckValue(StrToFloat(TextToValText(EditText)), True);
end;

procedure TCustomNumEdit.UpdateData;
begin
  ValidateEdit;
  FValue := CheckValue(StrToFloat(TextToValText(EditText)), False);
end;

procedure TCustomNumEdit.UpdatePopup;
begin
  if FPopup <> nil then
    SetupPopupCalculator(FPopup, DefCalcPrecision, BeepOnError);
end;

function TCustomNumEdit.GetValue: Extended;
begin
  if not (csDesigning in ComponentState) then
    try
      UpdateData;
    except
      FValue := FMinValue;
    end;
  Result := FValue;
end;

procedure TCustomNumEdit.SetValue(AValue: Extended);
begin
  FValue := CheckValue(AValue, False);
  DataChanged;
  Invalidate;
end;

function TCustomNumEdit.GetAsInteger: Longint;
begin
  Result := Trunc(Value);
end;

procedure TCustomNumEdit.SetAsInteger(AValue: Longint);
begin
  SetValue(AValue);
end;

procedure TCustomNumEdit.SetMinValue(AValue: Extended);
begin
  if FMinValue <> AValue then begin
    FMinValue := AValue;
    Value := FValue;
  end;
end;

procedure TCustomNumEdit.SetMaxValue(AValue: Extended);
begin
  if FMaxValue <> AValue then begin
    FMaxValue := AValue;
    Value := FValue;
  end;
end;

function TCustomNumEdit.GetText: string;
begin
  Result := inherited Text;
end;

function TCustomNumEdit.TextToValText(const AValue: string): string;
begin
  Result := DelRSpace(AValue);
  if DecimalSeparator <> ThousandSeparator then begin
    Result := DelChars(Result, ThousandSeparator);
  end;
  if (DecimalSeparator <> '.') and (ThousandSeparator <> '.') then
    Result := ReplaceStr(Result, '.', DecimalSeparator);
  if (DecimalSeparator <> ',') and (ThousandSeparator <> ',') then
    Result := ReplaceStr(Result, ',', DecimalSeparator);
  if Result = '' then Result := '0'
  else if Result = '-' then Result := '-0';
end;

procedure TCustomNumEdit.SetText(const AValue: string);
begin
  if not (csReading in ComponentState) then begin
    FValue := CheckValue(StrToFloat(TextToValText(AValue)), False);
    DataChanged;
    Invalidate;
  end;
end;

procedure TCustomNumEdit.ReformatEditText;
var
  S: string;
  IsEmpty: Boolean;
  OldLen, SelStart, SelStop: Integer;
begin
  FFormatting := True;
  try
    S := inherited Text;
    OldLen := Length(S);
    IsEmpty := (OldLen = 0) or (S = '-');
    if HandleAllocated then GetSel(SelStart, SelStop);
    if not IsEmpty then S := TextToValText(S);
    S := FormatFloatStr(S, Pos(',', DisplayFormat) > 0);
    inherited Text := S;
    if HandleAllocated and (GetFocus = Handle) and not
      (csDesigning in ComponentState) then
    begin
      Inc(SelStart, Length(S) - OldLen);
      SetCursor(SelStart);
    end;
  finally
    FFormatting := False;
  end;
end;

procedure TCustomNumEdit.Change;
begin
  if not FFormatting then begin
    if FFormatOnEditing and FFocused then ReformatEditText;
    inherited Change;
  end;
end;

{$IFDEF WIN32}
procedure TCustomNumEdit.AcceptValue(const Value: Variant);
{$ELSE}
procedure TCustomNumEdit.AcceptValue(const Value: string);
{$ENDIF}
begin
  inherited AcceptValue(Value);
end;

procedure TCustomNumEdit.WMPaste(var Message: TMessage);
var
  S: string;
begin
  S := EditText;
  try
    inherited;
    UpdateData;
  except
    EditText := S;
    SelectAll;
    if CanFocus then SetFocus;
    if BeepOnError then MessageBeep(0);
  end;
end;

procedure TCustomNumEdit.CMEnter(var Message: TCMEnter);
begin
  SetFocused(True);
  if FFormatOnEditing then ReformatEditText;
  inherited;
end;

procedure TCustomNumEdit.CMExit(var Message: TCMExit);
begin
  try
    CheckRange;
    UpdateData;
  except
    SelectAll;
    if CanFocus then SetFocus;
    raise;
  end;
  SetFocused(False);
  SetCursor(0);
  DoExit;
end;

procedure TCustomNumEdit.CMEnabledChanged(var Message: TMessage);
begin
  inherited;
  if NewStyleControls and not FFocused then Invalidate;
end;

procedure TCustomNumEdit.WMPaint(var Message: TWMPaint);
var
  S: string;
begin
  if PopupVisible then S := TPopupWindow(FPopup).GetPopupText
  else S := GetDisplayText;
  if not PaintComboEdit(Self, S, FAlignment, FFocused and not PopupVisible,
    FCanvas, Message) then inherited;
end;

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

{ TCurrencyEdit }

constructor TCurrencyEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlState := ControlState + [csCreating];
  try
    ButtonWidth := 0;
  finally
    ControlState := ControlState - [csCreating];
  end;
end;

function TCurrencyEdit.DefaultDisplayFormat: string;
var
  CurrStr: string;
  I: Integer;
  C: Char;
begin
  Result := ',0.' + MakeStr('0', CurrencyDecimals);
  CurrStr := '';
  for I := 1 to Length(CurrencyString) do begin
    C := CurrencyString[I];
    if C in [',', '.'] then CurrStr := CurrStr + '''' + C + ''''
    else CurrStr := CurrStr + C;
  end;
  if Length(CurrStr) > 0 then
    case CurrencyFormat of
      0: Result := CurrStr + Result; { '$1' }
      1: Result := Result + CurrStr; { '1$' }
      2: Result := CurrStr + ' ' + Result; { '$ 1' }
      3: Result := Result + ' ' + CurrStr; { '1 $' }
    end;
  Result := Format('%s;-%s', [Result, Result]);
end;

{ TRxCustomCalcEdit }

constructor TRxCustomCalcEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlState := ControlState + [csCreating];
  try
    FPopup := TPopupWindow(CreatePopupCalculator(Self
      {$IFDEF RX_D4}, BiDiMode {$ENDIF}));
    TPopupWindow(FPopup).OnCloseUp := PopupCloseUp;
    UpdatePopup;
  finally
    ControlState := ControlState - [csCreating];
  end;
end;

procedure DestroyLocals; far;
begin
  CalcBitmap.Free;
  CalcBitmap := nil;
end;

{$IFDEF WIN32}
initialization
finalization
  DestroyLocals;
{$ELSE}
initialization
  AddExitProc(DestroyLocals);
{$ENDIF}
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色久优优欧美色久优优| 中文字幕欧美一| 国产精品国产精品国产专区不蜜| 亚洲精品视频免费观看| 国产剧情一区二区| 日韩欧美视频一区| 亚洲成人av中文| 色婷婷综合久久久中文一区二区| 精品欧美一区二区在线观看| 性欧美疯狂xxxxbbbb| 972aa.com艺术欧美| 久久久精品免费观看| 日本欧美久久久久免费播放网| 一本在线高清不卡dvd| 中文字幕免费不卡| 国产激情视频一区二区在线观看| 日韩视频免费观看高清完整版| 亚洲午夜激情网页| 99热这里都是精品| 国产精品久久久久久久第一福利 | 日韩片之四级片| 亚洲综合激情小说| 成人免费毛片片v| 精品国产一区二区三区不卡| 日本最新不卡在线| 欧美群妇大交群的观看方式| 亚洲午夜影视影院在线观看| 91日韩一区二区三区| 成人免费在线播放视频| 成人av在线看| 综合网在线视频| 色婷婷av一区二区三区gif| 中文字幕字幕中文在线中不卡视频| 国产成人亚洲综合色影视| 欧美tk—视频vk| 国产一区福利在线| 国产欧美精品一区aⅴ影院 | 美女视频网站黄色亚洲| 日韩一区二区三区视频在线观看| 麻豆国产欧美一区二区三区| 日韩欧美国产综合在线一区二区三区| 精品在线视频一区| 国产精品入口麻豆九色| 99久久久国产精品免费蜜臀| 亚洲在线观看免费视频| 欧美老肥妇做.爰bbww视频| 日韩在线一区二区三区| 欧美www视频| jlzzjlzz欧美大全| 亚洲国产精品欧美一二99| 欧美一级久久久| 丰满亚洲少妇av| 伊人性伊人情综合网| 日韩三级在线观看| 国产不卡高清在线观看视频| 亚洲免费av网站| 日韩一级片在线观看| 成人免费毛片嘿嘿连载视频| 亚洲香蕉伊在人在线观| 久久综合久久综合久久综合| 91伊人久久大香线蕉| 婷婷成人激情在线网| 久久综合色8888| 在线视频国内自拍亚洲视频| 狠狠色丁香久久婷婷综合丁香| 中文字幕第一页久久| 欧美精品在线一区二区三区| 国产盗摄精品一区二区三区在线| 亚洲激情一二三区| 久久亚洲欧美国产精品乐播| 91片黄在线观看| 久久 天天综合| 亚洲电影在线免费观看| 日本一区免费视频| 日韩一级黄色片| 欧美伊人久久久久久午夜久久久久| 国产一区二区三区| 亚洲mv在线观看| 亚洲欧美日韩一区| 国产欧美日韩激情| 欧美va日韩va| 7777精品伊人久久久大香线蕉完整版 | 国产91对白在线观看九色| 午夜av一区二区三区| 国产精品麻豆久久久| 欧美一区二区视频网站| 欧洲精品在线观看| 色婷婷久久久综合中文字幕| 国产高清在线精品| 激情小说欧美图片| 日韩国产精品久久| 婷婷成人综合网| 亚洲一区二区精品3399| 亚洲品质自拍视频网站| 日本一区二区久久| 国产欧美一区二区三区在线老狼| 欧美一区二区在线观看| 欧美日韩不卡一区| 欧美性大战久久久久久久| 91麻豆swag| 91蜜桃在线观看| 97久久超碰精品国产| 成人av网站在线观看免费| 福利一区二区在线| 国产精品一线二线三线精华| 美女www一区二区| 蜜桃av一区二区三区| 美女爽到高潮91| 韩日av一区二区| 国产乱对白刺激视频不卡| 国产美女精品人人做人人爽| 麻豆免费看一区二区三区| 免费看精品久久片| 久久99精品国产麻豆不卡| 九九视频精品免费| 国产91丝袜在线播放| 成年人午夜久久久| 日本道精品一区二区三区| 欧洲在线/亚洲| 日韩一区二区三区视频在线 | 国产成人免费视频一区| 国产麻豆91精品| 成人av第一页| 在线精品视频免费播放| 欧美另类高清zo欧美| 精品欧美黑人一区二区三区| 久久综合九色综合97婷婷| 国产精品日韩精品欧美在线| 国产精品久久久久久一区二区三区 | 日本一区二区免费在线观看视频 | 国产乱子伦视频一区二区三区 | 一本色道综合亚洲| 欧美午夜影院一区| 日韩欧美黄色影院| 亚洲国产精品t66y| 亚洲宅男天堂在线观看无病毒| 日韩精品亚洲一区| 国产69精品久久久久毛片| 91小宝寻花一区二区三区| 欧美人伦禁忌dvd放荡欲情| 日韩一区二区在线观看视频播放| 久久久影视传媒| 亚洲综合丁香婷婷六月香| 久久精品久久99精品久久| 91丨九色丨黑人外教| 日韩精品中文字幕一区二区三区| 中文字幕高清不卡| 日本欧美一区二区三区| 不卡一区二区三区四区| 91精品国产综合久久香蕉的特点 | 麻豆精品蜜桃视频网站| 99国产精品视频免费观看| 日韩一区二区免费在线电影| 国产精品免费视频一区| 天堂久久久久va久久久久| 成人性色生活片免费看爆迷你毛片| 欧美视频自拍偷拍| 国产精品久久久久天堂| 免费成人性网站| 在线观看一区二区精品视频| 久久久久国产一区二区三区四区| 亚洲国产毛片aaaaa无费看| 成人午夜免费av| 欧美成人三级电影在线| 一区二区理论电影在线观看| 国产v综合v亚洲欧| 91精品国产综合久久精品麻豆| 国产精品情趣视频| 国产一区美女在线| 欧美一区二区在线看| 洋洋av久久久久久久一区| 高清不卡在线观看| 欧美tk—视频vk| 日本亚洲最大的色成网站www| 色欧美日韩亚洲| 亚洲色图一区二区| www.久久精品| 国产精品嫩草影院com| 国产999精品久久久久久绿帽| 日韩一级精品视频在线观看| 性做久久久久久免费观看欧美| 91同城在线观看| 国产精品免费视频网站| 国产成人精品亚洲午夜麻豆| 精品国产露脸精彩对白| 久久99久久精品| 日韩欧美在线123| 美女诱惑一区二区| 欧美zozo另类异族| 精品无人区卡一卡二卡三乱码免费卡| 制服丝袜在线91| 日韩av网站免费在线| 欧美一区二区免费视频| 日韩精品福利网| 日韩欧美123| 激情国产一区二区| 国产亚洲精品福利| 国产91精品一区二区麻豆亚洲| 中文字幕欧美日韩一区| 成人黄色电影在线|