Limitar nº de virgulas em celulas do DBGrid

Delphi

15/09/2010

Gostaria de saber se há alguma maneira de limitar o nº de virgulas por célula do DBGrid para 1. Porém não quero que isto seja feito através da propriedade DisplayFormat do ADOTable (componente de acesso a dados que utilizo), pois quando utilizo o DisplayFormat o nº 1 se torna 1,00 e  quero na verdade que 1 continue sendo mostrado como 1.

Consegui limitar a virgula quando colocada em um edit através de um botão e também através do OnKeyPress de um Edit, porém como fazer isso para as colunas de um DBGrid? Devo utilizar o comando DBGrid1.SelectedIndex = Index da coluna selecionada?

Aqui vão os códigos feitos para o Edit:

Inserindo a virgula em um Edit através de um botão

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Pos(DecimalSeparator, Edit1.Text) = 0 then
    Edit1.Text := Edit1.Text + DecimalSeparator
  else
    sndPlaySound('Default',SND_ASYNC);

  //Declarar mmSystem no uses da unit
end;


-------------------------------------- // --------------------------------------

Inserindo a virgula digitando diretamente no Edit

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if (key in [',']) and (Pos(DecimalSeparator, Edit3.Text) <> 0) then
    key := #0;
end;


Alguma dica?
Thiago Nobre

Thiago Nobre

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

15/09/2010

Coloque no seu DisplayFormat ###,##0.### assim ele irá mostrar zero quando não tiver nada, e somente mostrará as casa decimais se existir, e também não deixa incluir mais de um separador de decimal.

Espero ter colaborado.
GOSTEI 0
Thiago Nobre

Thiago Nobre

15/09/2010

Coloque no seu DisplayFormat ###,##0.### assim ele irá mostrar zero quando não tiver nada, e somente mostrará as casa decimais se existir, e também não deixa incluir mais de um separador de decimal.

Espero ter colaborado.


Posso colocar no DisplayFormat assim: 0.###

Sim ou não?
GOSTEI 0
Wilson Junior

Wilson Junior

15/09/2010

Pode, sem problemas nenhum.
GOSTEI 0
Thiago Nobre

Thiago Nobre

15/09/2010

Pode, sem problemas nenhum.
Valeu ae cara, assim que eu tiver tempo eu vou testar aqui e te retorno uma resposta!

Abraço.
GOSTEI 0
Thiago Nobre

Thiago Nobre

15/09/2010

Wilson, eu testei aqui e formatou sim, mas quando eu colocava mais de uma virgula ele não formatava, mas aparecia uma mensagem que dizia: 'NºCom+de1Virgula' is not a valid floating point for field 'CampoSelecionado' e não deixa o usuário mudar de campo em quanto ele  não corrigir. Não sei se isso é por causa do Display Format, mas já funciona, porém mesmo assim eu gostaria de saber se tem como quando o cara pressionar a virgula em o campo que já tem ela, ela não chegasse nem a aparecer no campo.

Obrigado pela ajuda e se não tiver como não tem problema, pois assim já está funcionando e é só por curiosidade mesmo que eu queria saber.
GOSTEI 0
Wilson Junior

Wilson Junior

15/09/2010

Na propriedade EditFormt coloque #####0###

Espero ter colaborado.
GOSTEI 0
Thiago Nobre

Thiago Nobre

15/09/2010

Na propriedade EditFormt coloque #####0###

Espero ter colaborado.


Colaborou e muito!

Na EditFormt é assim mesmo #####0### ?

Não seria assim #####0.###, com o ponto?
GOSTEI 0
Wilson Junior

Wilson Junior

15/09/2010

Isto mesmo. Me desculpe.
GOSTEI 0
Thiago Nobre

Thiago Nobre

15/09/2010

Beleza cara, vlw ae!
GOSTEI 0
POSTAR