Campo em DBGrid com MaxLength
Como faço para definir o tamanho de um campo em uma dbgrid?
Por exemplo: no edit ou no dbedit tem a propriedade maxlength.
Como faço no dbgrid?
Por exemplo: no edit ou no dbedit tem a propriedade maxlength.
Como faço no dbgrid?
Leufmt
Curtidas 0
Respostas
Vmlima
16/10/2009
Olá
Veja se a propriedade DisplayWidth do TField da sua query não resolve o seu problema...
Att.
Veja se a propriedade DisplayWidth do TField da sua query não resolve o seu problema...
Att.
GOSTEI 0
Vmlima
16/10/2009
E tem a propriedade Size tbm...
Att.
Att.
GOSTEI 0
Leufmt
16/10/2009
Não queria mexer nas propriedades do campo.
Se eu mexer no DisplayWidth não vai dar problema?
Será que não há outra forma?
Se eu mexer no DisplayWidth não vai dar problema?
Será que não há outra forma?
GOSTEI 0
Afarias
16/10/2009
|Não queria mexer nas propriedades do campo.
|Se eu mexer no DisplayWidth não vai dar problema?
Não tem problema. Esta como algumas outras propriedades do TField são puramente para definições ´visuais´ ou de interação com o usuário.
T+
|Se eu mexer no DisplayWidth não vai dar problema?
Não tem problema. Esta como algumas outras propriedades do TField são puramente para definições ´visuais´ ou de interação com o usuário.
T+
GOSTEI 0
Leufmt
16/10/2009
Não funcionou, é um campo tipo inteiro em uma dbgrid, eu digito diretamente na dbgrid.
Quero digitar no máximo 8 digitos, ai coloquei na propriedade do campo DisplayWidth 8. Só que não funciona.
E agora?
Quero digitar no máximo 8 digitos, ai coloquei na propriedade do campo DisplayWidth 8. Só que não funciona.
E agora?
GOSTEI 0
Afarias
16/10/2009
| é um campo tipo inteiro em uma dbgrid, eu digito diretamente na dbgrid.
Faltou esta informação não é?? Para campos numéricos use a propriedade MaxValue do TField.
T+
Faltou esta informação não é?? Para campos numéricos use a propriedade MaxValue do TField.
T+
GOSTEI 0
Leufmt
16/10/2009
Eu já testei com o MaxValue = 99999999, e também nada, continua aceitando infinitivamente a digitação.
GOSTEI 0
Afarias
16/10/2009
|Eu já testei com o MaxValue = 99999999, e também nada, continua
|aceitando infinitivamente a digitação.
Deixa digitar mas o campo não aceita. O usuário recebe uma mensagem de q o valor é maior q o permitido e tem q digitar um valor válido.
Infelizmente, pelo menos até o D7, a edição no DBGrid é bem limitada. Mas, é possível que, com um pouco de código vc consiga o q quer. Outra opção é usar um DBGrid de terceiros com mais funcionalidades.
Ex. O jvDBGrid dos componentes Open Souce JEDI (JVCL) permitem vc associar um jvDBControl a cada coluna (propriedade EditControls) assim dando todal controle na edição das células no grid.
T+
|aceitando infinitivamente a digitação.
Deixa digitar mas o campo não aceita. O usuário recebe uma mensagem de q o valor é maior q o permitido e tem q digitar um valor válido.
Infelizmente, pelo menos até o D7, a edição no DBGrid é bem limitada. Mas, é possível que, com um pouco de código vc consiga o q quer. Outra opção é usar um DBGrid de terceiros com mais funcionalidades.
Ex. O jvDBGrid dos componentes Open Souce JEDI (JVCL) permitem vc associar um jvDBControl a cada coluna (propriedade EditControls) assim dando todal controle na edição das células no grid.
T+
GOSTEI 0
Marco Salles
16/10/2009
acho que no onshow ...
SeuDataSet.Close; SeuDataSet.FieldByName(´SeuCampoInteger´).EditMask:=´99´; SeuDataSet.Open;
GOSTEI 0
Leufmt
16/10/2009
Com o EditMask funciona. Só que o EditMask tem um problema. Dependendo onde o usuário clicar no campo o cursor fica.
Sem o EditMask eu clico em cima do campo e o cursor vai para o começo(Lado esquerdo), já usando o EditMask se eu clicar no meio do campo lá fica o cursor.
Será que tem algum jeito de suprir isto?
Sem o EditMask eu clico em cima do campo e o cursor vai para o começo(Lado esquerdo), já usando o EditMask se eu clicar no meio do campo lá fica o cursor.
Será que tem algum jeito de suprir isto?
GOSTEI 0
Marco Salles
16/10/2009
Com o EditMask funciona. Só que o EditMask tem um problema. Dependendo onde o usuário clicar no campo o cursor fica.
Sem o EditMask eu clico em cima do campo e o cursor vai para o começo(Lado esquerdo), já usando o EditMask se eu clicar no meio do campo lá fica o cursor.
Será que tem algum jeito de suprir isto?
pode melhorar com a mascara
SeuDataSet.FieldByName(´SeuCampoIntegr´).EditMask:=´999999;0;_´;
porém a resolução do problema so resolve com um POG.. O Proprio
SeuDataSet.FieldByName(´SeuCampoIntegr´).EditMask:=´999999;0;_´;
ja é um POG ...
O Mais profissional é usar o MAXValue com certeza ...
GOSTEI 0