Limitar nº de virgulas em celulas do DBGrid
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
-------------------------------------- // --------------------------------------
Inserindo a virgula digitando diretamente no Edit
Alguma dica?
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
Curtidas 0
Respostas
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.
Espero ter colaborado.
GOSTEI 0
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.
Espero ter colaborado.
Posso colocar no DisplayFormat assim: 0.###
Sim ou não?
GOSTEI 0
Wilson Junior
15/09/2010
Pode, sem problemas nenhum.
GOSTEI 0
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
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.
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
15/09/2010
Na propriedade EditFormt coloque #####0###
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Thiago Nobre
15/09/2010
Na propriedade EditFormt coloque #####0###
Espero ter colaborado.
Espero ter colaborado.
Colaborou e muito!
Na EditFormt é assim mesmo #####0### ?
Não seria assim #####0.###, com o ponto?
GOSTEI 0
Wilson Junior
15/09/2010
Isto mesmo. Me desculpe.
GOSTEI 0
Thiago Nobre
15/09/2010
Beleza cara, vlw ae!
GOSTEI 0