1

我已经做了很多研究,仍然不知道如何将数字(尤其是带有两个逗号或美分的货币数字)输入显示为数字分组输入,即一百万 = 1000000.25 到 1,000,000.25 直接通过 Delphi 7 中的 OnChange 或 OnKeyPress。

我不想使用命令按钮进行更改,我希望它的行为类似于 Windows 7 计算器输入框(通过 OnChange、OnKeyPress)。它有数字分组和逗号(点)。

如果我查看 Windows 7 计算器输入框并激活数字分组,这就是我希望我在 delphi 7 中的编辑框的行为方式。有什么方法或解决方案吗?

4

2 回答 2

1

可能很简单:

label1.caption := FormatFloat('#,###,###.00',10000000.25);

问候。保罗。

于 2015-07-22T13:43:44.753 回答
0
//This code worked for me very well
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);   
var Valor: Double;  
begin  
  try          
     StrData := StrData + Key;   
     EliminarFormato(Trim(StrData));   
     Valor := StrToFloat(StrData);  
     Edit1.Text := Format('%8.0n',[Valor]);   
     Key := #03;  
     SendMessage(Edit1.Handle,WM_KEYDOWN,VK_END,0);     
   except on E: Exception do
     StrData := '';  
   end;   
end;

function TForm1.EliminarFormato(const Data: string): string;  
var Datos: string;   
    I: Word;  
begin
  Datos := Trim(Data);   
  repeat  
    I := Pos('.',Datos);  
    if I > 0 then  
      Delete(Datos,I,1);  
  until (Pos('.',Datos) = 0);    
  Result := Datos;  
end;
于 2018-10-29T03:46:44.010 回答