Fórum Campo em DBGrid com MaxLength #376053

16/10/2009

0

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?


Leufmt

Leufmt

Responder

Posts

16/10/2009

Vmlima

Olá

Veja se a propriedade DisplayWidth do TField da sua query não resolve o seu problema...

Att.


Responder

Gostei + 0

16/10/2009

Vmlima

E tem a propriedade Size tbm...
Att.


Responder

Gostei + 0

20/10/2009

Leufmt

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?


Responder

Gostei + 0

20/10/2009

Afarias

|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+


Responder

Gostei + 0

20/10/2009

Leufmt

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?


Responder

Gostei + 0

20/10/2009

Afarias

| é 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+


Responder

Gostei + 0

20/10/2009

Leufmt

Eu já testei com o MaxValue = 99999999, e também nada, continua aceitando infinitivamente a digitação.


Responder

Gostei + 0

20/10/2009

Afarias

|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+


Responder

Gostei + 0

20/10/2009

Marco Salles

acho que no onshow ...

SeuDataSet.Close;
SeuDataSet.FieldByName(´SeuCampoInteger´).EditMask:=´99´;
SeuDataSet.Open;



Responder

Gostei + 0

22/10/2009

Leufmt

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?


Responder

Gostei + 0

22/10/2009

Marco Salles

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 ...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar