Fórum Em qual evento, posso controlar as linhas de uma dbgrid ? #222594
26/03/2004
0
Bom dia a todos .....
Alguem saberia me dizer, em qual evento, posso controlar as linhas de uma dbgrid ? Preciso fazer certo calculos e gravações, porem so pode ser executado, qdo a pessoa mudar de linha, seja pra cima ou baixo ...
So achei, evento q controla mudança de coluna ... mas ai nao da .. preciso da linha ....
Alguem saber aonde posso fazer isso ? Ou se isso é impossivel ... como ´contornar´ isso ?
Abraços a todos e uma boa sexta feira ...
Beto
splash_sbc@hotmail.com
[b:522095d104][color=red:522095d104]Editado pelo Moderador (AZ) - Por favor, leia as regras.[/color:522095d104][/b:522095d104]
Alguem saberia me dizer, em qual evento, posso controlar as linhas de uma dbgrid ? Preciso fazer certo calculos e gravações, porem so pode ser executado, qdo a pessoa mudar de linha, seja pra cima ou baixo ...
So achei, evento q controla mudança de coluna ... mas ai nao da .. preciso da linha ....
Alguem saber aonde posso fazer isso ? Ou se isso é impossivel ... como ´contornar´ isso ?
Abraços a todos e uma boa sexta feira ...
Beto
splash_sbc@hotmail.com
[b:522095d104][color=red:522095d104]Editado pelo Moderador (AZ) - Por favor, leia as regras.[/color:522095d104][/b:522095d104]
Splash
Curtir tópico
+ 0
Responder
Posts
26/03/2004
Paullus
Você pode realizar as mudanças desejadas no OnDrawCollumnCell. Mas aí você terá que ´pintar´ no grid (usar o Canvas).
Aí embaixo tem um exemplo BEM BÁSICO:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.FieldName = ´salario´) then
with TDBGrid(Sender).Canvas do
begin
FillRect(Rect);
if not Column.Field.IsNull then
TextOut(Rect.Left + 2, Rect.Top + 2, FormatFloat(´#,.00´, Column.Field.AsFloat - descontos))
end;
end;
Aí embaixo tem um exemplo BEM BÁSICO:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.FieldName = ´salario´) then
with TDBGrid(Sender).Canvas do
begin
FillRect(Rect);
if not Column.Field.IsNull then
TextOut(Rect.Left + 2, Rect.Top + 2, FormatFloat(´#,.00´, Column.Field.AsFloat - descontos))
end;
end;
Responder
Gostei + 0
26/03/2004
Thiago Vidal
Olá!
Acredito que voce terá resultados melhores e mais eficientes se escrever as rotinas no evento OnAfterScroll do DataSet que está linkado ao DataSource que está linkado ao DBGrid.
Acredito que voce terá resultados melhores e mais eficientes se escrever as rotinas no evento OnAfterScroll do DataSet que está linkado ao DataSource que está linkado ao DBGrid.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)