我一直在做很多研究,仍然不知道如何用数字分组输入显示数字(特别是带有两个逗号或美分的货币数字)输入,即直接通过OnChange输入一百万= 1000000.25到1,000,000.25或Delphi 7中的OnKeyPress。
我不想使用命令按钮进行更改,我希望它的行为类似于Windows 7计算器输入框(通过OnChange,OnKeyPress)。它有数字分组,并且有逗号(点)。
如果我查看Windows 7计算器输入框并激活数字分组,那么我也希望我在delphi 7中的编辑框行为。对此有什么方法或解决方案吗?
答案 0 :(得分:1)
可能很简单:
label1.caption:= FormatFloat('#,###,###。00',10000000.25);
问候。 保罗。
答案 1 :(得分: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;