Limitar quantidade de caracteres por célula
Olá pessoal,
estou utilizando o componente TStringGrid...e estou com dificuldades de definir um limite de caracteres por coluna. Por exemplo, na coluna 1, o usuário poderá digitar no máximo 10 caracteres, na 2 15...e assim por diante.
Como posso fazer isso?
Não tenho a mínima idéia.
Estou a dois dias parado nisso...e infelizmente...não estou conseguindo achar uma solução.
Obrigado a todos.
Carlos
estou utilizando o componente TStringGrid...e estou com dificuldades de definir um limite de caracteres por coluna. Por exemplo, na coluna 1, o usuário poderá digitar no máximo 10 caracteres, na 2 15...e assim por diante.
Como posso fazer isso?
Não tenho a mínima idéia.
Estou a dois dias parado nisso...e infelizmente...não estou conseguindo achar uma solução.
Obrigado a todos.
Carlos
Carlos Phelippe
Curtidas 0
Respostas
Marcelo Saviski
06/03/2003
[color=red:2a9b207e24]No evento onKeyPress faça[/color:2a9b207e24]
[color=red:2a9b207e24]Vai ter que descobrir como pegar a celula atual[/color:2a9b207e24]
if lenght(StringGrid.Cells[celulaatual.x,celulaatual.y]) > 15 then key := 0;
[color=red:2a9b207e24]Vai ter que descobrir como pegar a celula atual[/color:2a9b207e24]
GOSTEI 0
Anonymous
06/03/2003
Escreva um evento onKeyPress no seu StringGrid.
assim vc determina o tamanho de todas as celulas de uma vez (altere apenas o tamanhoMaximo para a quantidade que vc deseja) :
if (not(key in [#8]) and (Length((Sender as TStringGrid).Cells[(Sender as TStringGrid).Col, (Sender as TStringGrid).Row]) >= tamanhoMaximo)) then
Key := 0;
mas se quiser determinar o tamanho para celulas individualmente, faça assim (altere coluna, linha e tamanhoMaximo para o valor desejado, lembrando que coluna e linha iniciam em zero) :
if (not(key in [8]) and (Length((Sender as TStringGrid).Cells[coluna, linha]) >= tamanhoMaximo)) then
Key := 0;
aconselho vc a fazer uma funçãozinha com esse bloco de código, para tornar o tratamento das células mais fácil....
[]´s
Rodrigo Duarte.
assim vc determina o tamanho de todas as celulas de uma vez (altere apenas o tamanhoMaximo para a quantidade que vc deseja) :
if (not(key in [#8]) and (Length((Sender as TStringGrid).Cells[(Sender as TStringGrid).Col, (Sender as TStringGrid).Row]) >= tamanhoMaximo)) then
Key := 0;
mas se quiser determinar o tamanho para celulas individualmente, faça assim (altere coluna, linha e tamanhoMaximo para o valor desejado, lembrando que coluna e linha iniciam em zero) :
if (not(key in [8]) and (Length((Sender as TStringGrid).Cells[coluna, linha]) >= tamanhoMaximo)) then
Key := 0;
aconselho vc a fazer uma funçãozinha com esse bloco de código, para tornar o tratamento das células mais fácil....
[]´s
Rodrigo Duarte.
GOSTEI 0