Delphi 7 Edit Box Digit Group Группировка с запятыми

Я много занимался исследованиями, но до сих пор не понимаю, как отображать числовые (особенно денежные цифры с двумя запятыми или центами) входные данные в виде группового ввода, т. Е. От ОДНОГО МИЛЛИОНА = 1000000.25 до 1 000 000,25 напрямую через OnChange или OnKeyPress в Delphi 7.

Я не хочу использовать командную кнопку для изменения, я хочу, чтобы она вел себя как окно ввода калькулятора Windows 7 (через OnChange,OnKeyPress). он имеет группировку цифр и запятые (точка).

Если я посмотрю на окно ввода калькулятора Windows 7 и активирую группировку цифр, я также хочу, чтобы мое поле редактирования в Delphi 7 работало. Есть ли подход или решение для этого?

2 ответа

Может быть так просто, как:

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

Привет. Pau.

//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;
Другие вопросы по тегам