Escrever no DBGrid
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
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
Curtidas 0
Respostas
Edilcimar
18/01/2006
se o campo onde vai tentar escrever for um campo calculado, não vai conseguir
GOSTEI 0
Massuda
18/01/2006
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].
GOSTEI 0
Btovix
18/01/2006
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
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
GOSTEI 0
Btovix
18/01/2006
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
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
GOSTEI 0