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

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

?? floatedit.pas

?? 實現精度編輯的控制,用得很方便 ,絕對安全
?? PAS
字號:
Unit FloatEdit;

Interface

Uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, Menus;

Type
  TFloatEdit = Class (TCustomMemo)
  Private
    FDecimals    : integer;
    FMaxLength   : integer;
    FormatString : string;
    DecimalPos   : integer;
    Procedure SetDecimals (Value: integer);
    Procedure SetMaxLength (Value: integer);
    Function StripCommas (AString: string) : string;
    Procedure Reformat;
    Procedure CMEnter (Var Message: TCMGotFocus); Message CM_ENTER;
    Procedure CMExit (Var Message: TCMLostFocus); Message CM_Exit;
    Function GetTextAsFloat : Extended;
    Procedure SetTextAsFloat (Value: Extended);
  Protected
    Procedure KeyDown (Var Key: Word; Shift: TShiftState);Override;
    Procedure KeyPress (Var Key: char);Override;
  Public
    Constructor Create (AOwner: TComponent);Override;
  Published
    Property MaxLength : integer Read FMaxLength Write SetMaxLength;
    Property Decimals : integer Read FDecimals Write SetDecimals;
    Property Value : Extended Read GetTextAsFloat Write SetTextAsFloat;
    Property Alignment Default taRightJustify;
    Property BorderStyle;
    Property Color;
    Property Ctl3D;
    Property DragCursor;
    Property DragMode;
    Property Enabled;
    Property Font;
    Property HideSelection;
    Property ParentColor;
    Property ParentCtl3D;
    Property ParentFont;
    Property ParentShowHint;
    Property PopupMenu;
    Property ReadOnly;
    Property ShowHint;
    Property TabOrder;
    Property TabStop;
    Property Visible;
    Property OnChange;
    Property OnClick;
    Property OnDblClick;
    Property OnDragDrop;
    Property OnDragOver;
    Property OnEndDrag;
    Property OnEnter;
    Property OnExit;
    Property OnKeyDown;
    Property OnKeyPress;
    Property OnKeyUp;
    Property OnMouseDown;
    Property OnMouseMove;
    Property OnMouseUp;
  End;

Procedure Register;

Implementation

Constructor TFloatEdit.Create (AOwner: TComponent);
Begin
  Inherited Create (AOwner);
  WantReturns := False;
  Height := 24;
  Width := 120;
  Alignment := taRightJustify;
  DecimalPos := 0;
  FMaxLength := 16;
  Decimals := 1
End;


Procedure TFloatEdit.SetDecimals (Value: integer);
Var
  i : integer;
Begin
  If (Value >= 0) and (Value < FMaxLength - 1) Then
    FDecimals := Value;
  If Value <> 0 Then
  Begin
    FormatString := '#,##0.';
    For i := 1 to FDecimals Do
      FormatString := FormatString + '0'
  End
  Else
    FormatString := '#,##0';
  MaxLength := MaxLength;
  Reformat
End;


Procedure TFloatEdit.SetMaxLength (Value: integer);
Begin
  If (Value < 20) and (Value > FDecimals + 1) Then
    FMaxLength := Value;
  If (FMaxLength - FDecimals - 1) mod 4 = 0 Then
    Dec (FMaxLength)
End;


Function TFloatEdit.StripCommas (AString: string) : string;
Var
  StringValue: Extended;
  ErrorPos    : integer;
  HaveDecimal:boolean;
  i:integer;
Begin
  While (Pos (ThousandSeparator, AString) > 0) Do
    Delete(AString, Pos (ThousandSeparator, AString), 1);
  While (Pos (DecimalSeparator, AString) > 0) Do
  begin
    delete (AString, Pos (DecimalSeparator, AString), 1);
    HaveDecimal:=True;
  end;
  Val (AString, StringValue, ErrorPos);
  If ErrorPos > 0 Then
    Result := '0'
  Else
  Begin
    if not HaveDecimal then
    begin
      AString:=AString+'.';
      For I:=0 to FDecimals do
        AString:=AString+'0';
    end else
    begin
      Insert (DecimalSeparator, AString, Length (AString) - FDecimals + 1);
    end;
    Result := AString
  End
End;


Procedure TFloatEdit.Reformat;
Begin
  Text := FormatFloat (FormatString, StrToFloat (StripCommas (Text)))
End;


Procedure TFloatEdit.CMEnter (Var Message: TCMGotFocus);
var
  AString:string;
Begin
  AString:=Text;
  While (Pos (ThousandSeparator, AString) > 0) Do
    delete(AString, Pos (ThousandSeparator, AString), 1);
  While ((Pos(Copy(AString,Length(AString),1),'0.')>0) ) Do
  begin
    if Copy(AString,Length(AString),1)='.' then
    begin
      Delete(AString, Length(AString), 1);
      Break;
    end;
    Delete(AString, Length(AString), 1);
    if AString='' then
    begin
      AString:='0';
      Break;
    end;
  end;
  Text:=AString;
  SelectAll;
  //Inherited;
End;

Procedure TFloatEdit.CMExit (Var Message: TCMLostFocus);
var
  AString:string;
Begin
  AString:=Text;
  if Pos (DecimalSeparator,AString)=0 then
    AString:=AString+'.';
  While Length(AString)-Pos (DecimalSeparator,AString)<FDecimals do
    AString:=AString+'0';
  Text:=AString;
  reformat;
  //Inherited;
End;


Procedure TFloatEdit.KeyDown (Var Key: Word; Shift: TShiftState);
Var
  CursorPos : integer;
  Buffer    : string;
Begin
  Inherited KeyDown (Key, Shift);
  If Key = VK_DELETE Then
  Begin
    Buffer := Text;
    CursorPos := Length (Buffer) - SelStart - SelLength;
    if SelLength<>0 then
    begin
      Delete(Buffer, SelStart+1, SelLength);
      Key:=0;
      Text := Buffer;
      SelStart := Length (Text) - CursorPos;
      Exit;
    end
    else begin
      Delete(Buffer, SelStart+1, 1);
      Key:=0;
      Text := Buffer;
      SelStart := Length (Text) - CursorPos+1 ;
      Exit;
    end;
  end;
End;

Procedure TFloatEdit.KeyPress (Var Key: char);
Var
  Buffer    : string;
  CursorPos : integer;
Begin
  if key=#13 then begin Inherited KeyPress (Key);Exit; end;
  Buffer := Text;
  CursorPos := Length (Buffer) - SelStart - SelLength;
  if SelLength<>0 then
    Delete(Buffer, SelStart+1, SelLength);
  if Key=#8 then
  begin
    Delete (Buffer, Length (Buffer) - CursorPos, 1);
    Text := Buffer;
    SelStart := Length (Text) - CursorPos;
    Key:=#0;
    Exit;
  end;
  if not (Key in ['0' .. '9','.','-']) then
  begin
    Key:=#0;
    Exit;
  end;
  if (Pos (DecimalSeparator, Buffer) > 0) then
  begin
    if (Key='.') or ((Cursorpos<FDecimals+1)
    and (Length(Buffer)-Pos (DecimalSeparator, Buffer)>=FDecimals)) then
    begin
      Key:=#0;
      Exit;
    end;
  end;
  if Key='.' then
  begin
    if CursorPos>FDecimals then
    begin
      Key:=#0;
      Exit;
    end;
  end;
  if  Length(Buffer)>=FMaxLength then
  begin
    Key:=#0;
    Exit;
  end;
  if Key='-' then
  begin
    if CursorPos<>Length(Buffer) then
    begin
      Key:=#0;
      Exit;
    end;
  end;
  Insert (Key, Buffer, Length (Buffer) - CursorPos + 1);
  Text := Buffer;
  SelStart := Length (Text) - CursorPos;
  Key:=#0;
End;

Function TFloatEdit.GetTextAsFloat;
var
  AMessage:TCMLostFocus;
Begin
  CMExit(AMessage);
  Result := StrToFloat (StripCommas (Text))
End;


Procedure TFloatEdit.SetTextAsFloat (Value: Extended);
Begin
  Text := FormatFloat (FormatString, Value)
End;


Procedure Register;
Begin
  RegisterComponents ('MyVcl', [TFloatEdit])
End;


End.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费观看| 一卡二卡欧美日韩| 色综合天天综合| 日韩成人伦理电影在线观看| 国产蜜臀av在线一区二区三区| 欧美视频在线观看一区二区| 从欧美一区二区三区| 久久国产麻豆精品| 亚洲一区二区3| 一区二区中文字幕在线| 精品噜噜噜噜久久久久久久久试看 | 精品粉嫩超白一线天av| 日韩写真欧美这视频| 日韩av不卡一区二区| 欧美色图激情小说| 国产在线不卡视频| 午夜欧美一区二区三区在线播放| 欧美日韩国产高清一区| 成人免费看片app下载| 国内精品国产成人国产三级粉色| 亚洲一二三四久久| 亚洲精品自拍动漫在线| 久久精品亚洲乱码伦伦中文| 欧美高清你懂得| 在线免费观看日本欧美| 91在线精品秘密一区二区| 国产伦精品一区二区三区免费| 日本色综合中文字幕| 三级欧美在线一区| 婷婷六月综合网| 亚洲一区二区在线视频| 亚洲综合激情网| 亚洲午夜久久久久久久久电影网 | 欧美韩日一区二区三区四区| 精品国产91久久久久久久妲己| 欧美精品123区| 欧美久久久久久久久久| 欧美日韩的一区二区| 欧美色成人综合| 欧美二区乱c少妇| 日韩一区二区精品在线观看| 91精品国产色综合久久| 日韩西西人体444www| 欧美成人乱码一区二区三区| 欧美tk丨vk视频| 久久色视频免费观看| 欧美精彩视频一区二区三区| 国产精品乱码人人做人人爱| 中文字幕制服丝袜一区二区三区| 国产精品久久久久久久午夜片| 国产精品二三区| 亚洲麻豆国产自偷在线| 亚洲成人av中文| 欧美96一区二区免费视频| 狠狠色丁香久久婷婷综合_中| 国产乱一区二区| 不卡一二三区首页| 日本高清免费不卡视频| 欧美日韩不卡一区二区| 精品国产髙清在线看国产毛片| 久久久精品tv| 亚洲欧美一区二区视频| 亚洲第一av色| 国内精品在线播放| 成人黄色综合网站| 精品视频999| 久久亚洲精精品中文字幕早川悠里| 国产蜜臀av在线一区二区三区| 亚洲九九爱视频| 日韩和欧美一区二区三区| 激情五月激情综合网| 不卡av在线网| 69堂精品视频| 亚洲国产精华液网站w| 一区二区三区在线不卡| 免费欧美在线视频| 91网站在线观看视频| 日韩一级免费一区| ...xxx性欧美| 免费日韩伦理电影| 色综合久久88色综合天天6| 欧美一区二区性放荡片| 国产精品美女一区二区在线观看| 亚洲成人一区二区在线观看| 国产成人综合在线观看| 欧美美女一区二区三区| 欧美国产一区二区| 青娱乐精品在线视频| 99久久精品免费观看| 日韩视频一区二区三区在线播放| 亚洲国产精品ⅴa在线观看| 天堂蜜桃91精品| 99久久精品免费精品国产| 日韩久久精品一区| 亚洲综合激情小说| www.欧美.com| 精品少妇一区二区三区免费观看 | 国产成人啪免费观看软件| 欧美日本免费一区二区三区| 亚洲国产精品成人久久综合一区 | 国产精品一区二区果冻传媒| 欧美在线播放高清精品| 国产精品乱码一区二区三区软件| 免费精品视频在线| 91福利在线观看| 国产精品视频观看| 国产一区二区三区久久久| 欧美精品日韩精品| 亚洲一区在线看| 99热这里都是精品| 国产免费观看久久| 国产精一区二区三区| 日韩欧美黄色影院| 午夜成人在线视频| 欧美在线一二三| 亚洲免费观看视频| 99免费精品在线观看| 中文乱码免费一区二区 | 欧美日韩亚洲综合一区二区三区| 国产精品青草综合久久久久99| 精品一区二区久久久| 91精品久久久久久久久99蜜臂| 亚洲妇女屁股眼交7| 欧美亚一区二区| 亚洲一区二区高清| 欧美性感一类影片在线播放| 亚洲私人影院在线观看| www.欧美亚洲| 亚洲色图色小说| 色综合久久天天| 亚洲日韩欧美一区二区在线| 99re这里只有精品首页| 亚洲图片欧美激情| 一本大道久久a久久综合婷婷| 国产精品午夜春色av| a在线欧美一区| 自拍偷拍亚洲欧美日韩| 91无套直看片红桃| 亚洲午夜久久久久中文字幕久| 欧美系列一区二区| 午夜精品久久久| 91精品国产一区二区人妖| 免费精品视频最新在线| 精品国产不卡一区二区三区| 国内精品国产三级国产a久久 | ●精品国产综合乱码久久久久| 成人激情图片网| 一区二区三区精品在线观看| 日本高清视频一区二区| 婷婷久久综合九色国产成人| 日韩欧美国产精品一区| 国产在线精品免费| 亚洲国产精品激情在线观看| 91在线观看地址| 亚州成人在线电影| 精品国产污网站| 成人av影院在线| 亚洲午夜精品网| 欧美tk丨vk视频| 成人app在线| 亚洲二区在线视频| 久久久久九九视频| 91丨porny丨最新| 日本少妇一区二区| 国产日韩av一区| 欧美伊人精品成人久久综合97| 日韩成人一级大片| 国产视频一区在线观看| 欧美性色黄大片手机版| 九九视频精品免费| 亚洲天堂免费看| 日韩视频在线观看一区二区| 福利电影一区二区| 亚洲午夜一区二区| 亚洲精品一区二区三区精华液 | 激情欧美一区二区| 中文字幕在线一区二区三区| 欧美视频日韩视频| 国内精品自线一区二区三区视频| 中文字幕一区二区三中文字幕| 欧美日韩免费视频| 大胆亚洲人体视频| 日韩二区在线观看| 亚洲视频一区在线| 日韩精品中文字幕在线不卡尤物| 成人免费视频视频在线观看免费| 亚洲成人av一区二区| 国产亚洲精品精华液| 欧美高清性hdvideosex| 99久久国产综合精品色伊 | 色综合久久久久综合99| 久久99精品一区二区三区三区| 中文字幕一区二区视频| 精品国产乱码久久久久久夜甘婷婷 | 一本色道久久综合亚洲aⅴ蜜桃| 久久99精品视频| 亚洲18色成人| 亚洲精品中文在线| 欧美国产精品v| 欧美变态tickling挠脚心|