cgonzalez 0 Denunciar post Postado Abril 3, 2008 Bom dia.... Como faço para controlar o limite de caracteres por celula em um StringGrid. Estou usando um StringGrid para cadastro de telefone. Na Primeira coluna coloquei o tipo de telefone(comercial,fax,celular,etc) na segunda coluna o usuário vai informar o telefone referente a cada tipo. Nessa segunda coluna queria limitar a digitação para 8 caracteres. Segue o código: procedure TForm.StringGridKeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9',#8]) then key := #0; if not (key = #8) and (length(StringGrid.Cells[1,1]) >= 8) then key := #0; if not (key = #8) and (length(StringGrid.Cells[1,2]) >= 8) then key := #0; if not (key = #8) and (length(StringGrid.Cells[1,3]) >= 8) then key := #0; if not (key = #8) and (length(StringGrid.Cells[1,4]) >= 8) then key := #0; end; Desse jeito consigo digitar os 8 caracteres apenas na primeira celula. Grata, Cris Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Abril 4, 2008 nao sei ao ceto ms pq o uso de IFs "soltos" será que encadeados a logica nao melhoraria? Compartilhar este post Link para o post Compartilhar em outros sites
cgonzalez 0 Denunciar post Postado Abril 4, 2008 Pantoja, Já tentei dessa forma e tb não funcionou. Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Abril 4, 2008 O Keypress desse componete serve para todas as celulas... noa conheç tal componente ou nao me recordo... poderia tirar uma SS de sua tela para eu dar uma olhada? Compartilhar este post Link para o post Compartilhar em outros sites
cgonzalez 0 Denunciar post Postado Abril 6, 2008 O Keypress desse componete serve para todas as celulas... noa conheç tal componente ou nao me recordo... poderia tirar uma SS de sua tela para eu dar uma olhada? Olá Pantoja Resolvi o problema usando uma máscara no StringGrid, evento (OnGetEditMask). Segue código : procedure TForm1.StringGridGetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String); begin inherited; if ACol = 1 then Value := '999-9999;1;_'; end; Compartilhar este post Link para o post Compartilhar em outros sites