Fórum Escrever no DBGrid #309730

18/01/2006

0

Olá pessoal! Estou fazendo um aplicativo onde a pessoa vai gerar um cáculo... ocorre que esse resultado vai parar num dbgrid, e eu gostaria de fazer com que ela pudesse alterar esse resultado.

Por exemplo se o resultado sair 3,33 ela poderia colocar 3 ou 4 para o resultado ficar esteticamente bonito.

Uma vez eu vi alguém fazer o sistema escrever num dbGrid alterando direto na tabela. estou tentando fazer algo assim, mas não estou conseguindo... alguém poderia me ajudar??

Abraços a Todos


Btovix

Btovix

Responder

Posts

18/01/2006

Edilcimar

se o campo onde vai tentar escrever for um campo calculado, não vai conseguir


Responder

Gostei + 0

18/01/2006

Massuda

Pelo que entendi, você quer mostrar um valor diferente do que está no campo da tabela. Se for isso, dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=57495]neste tópico[/url].


Responder

Gostei + 0

18/01/2006

Btovix

Massuda muito obrigado pelo link tinha procurado no site todo e realmente não tinha achado nada parecido... mas o que vc me mandou ainda não satisfaz a minha vontade, quero que o usuário digite o valor que ele quiser. para isso estou usando o seguinte código:

procedure TForm1.FormCreate(Sender: TObject);
var nI: Integer;
begin
for nI := 0 to dbGrid1.Columns.Count-1 do
dbGrid1.Columns.Items[nI].ReadOnly := true;

dbGrid1.Columns.Items[5].ReadOnly := false;
end;

No caso acima a coluna 5 fica Liberada para digitação somente ela... pois os outros dados não quero que sejam trocados

agora eu estou testando pra ver se tem como pegar esse novo valor e atualizar a tabela... se alguém por aqui souber desde já agradeço...

um grande abraço a todos... :D e desde já muito obrigado


Responder

Gostei + 0

18/01/2006

Btovix

Fica aqui pra todo mundo como que eu fiz pra resolver esse problema:

Eu queria que o cliente escrevesse no dbgrid e alterasse os valores do mesmo pra isso escrevi o seguinte algorítmo:

procedure TForm1.FormCreate(Sender: TObject);
var nI: Integer;
begin
for nI := 0 to dbGrid1.Columns.Count-1 do
dbGrid1.Columns.Items[nI].ReadOnly := true;

dbGrid1.Columns.Items[1].ReadOnly := false;
dbGrid1.Columns.Items[2].ReadOnly := false;
end;

para atualizar direto no db grid é só ´sair da linha´(usando as setas por exemplo) que ele já atualiza, mas para ficar com uma estética mais interessante coloquei um botão para atualizar a linha com o seguinte código:

dbGrid1.SelectedRows.Refresh

Agora se alguém souber como faço pra selecionar a coluna que eu estava escrevendo anteriormente, vai me ajudar com o que falta... mas acho que isso já tá razoavelmente bom... um grande abraço a todos... :D


Responder

Gostei + 0

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

Aceitar