faz o seguinte bem mais fácil:
no evento onchange(o dos campos da tabela(de
memoria ou fisica) q vc quer q calcule) coloque
assim:

If Not PodeCalcular Then Exit;

Faz os calculos que precisa...
e atualize os campos necessarios


Nos procecedimentos q caso vc insira outros
campos no grid ou apague, sete PodeCalcular para
False e no fim dele True

Caso deseje o valor anterior ao q vc alterou no
evento o keypress do grid manda variáveis globais
armazenar o valor anterior ex:

ValorAnterior[0] := dbgrid1Campo1.asstring;
ValorAnterior[1] := dbgrid1Campo2.asstring;
ValorAnterior[2] := dbgrid1Campo3.asstring;

ai eh soh ultilizá-las para fazer calculos no
onchage se desejado
ok...





 --- Aline Alves Soares
<[EMAIL PROTECTED]> escreveu: 

---------------------------------

Vê se esse código te ajuda...

procedure Tfrm1.GRID(Column: TColumn);
begin
 //campos editáveis da Grid 
  If AnsiUpperCase (GRID.SelectedField.FieldName)
= AnsiUpperCase('campo')  then
  begin
    GRID.Options:=GRID.Options + [dgEditing];
    GRID.ReadOnly:=false;
  end
 //campos não editáveis da Grid
  else
  begin
    GRID.Options:=GRID.Options - [dgEditing];
    GRID.ReadOnly:=true;
  end;

end;

procedure Tfrm1.GRIDKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (key = 13) or (key = VK_TAB) then
  begin
    if Query.State = DSEdit then
     Query.Post;
  end;

end;

procedure Tfrm1.DATASOURCEUpdateData(Sender:
TObject);
begin
  if (AnsiUpperCase(GRID.SelectedField.FieldName)
= 'valor') and (GRID.SelectedField.AsVariant <>
null) then
  begin
    Query['valor'] := (Query['valor'] *
GRID.SelectedField.AsFloat);
  end;
end;

  ----- Original Message ----- 
  From: itamar 
  To: [EMAIL PROTECTED] 
  Sent: Friday, November 26, 2004 9:31 AM
  Subject: Re: [delphi-br] DBGrid


  coloca no onexit do ultimo campo que ao
abandonar o campo o calculo sera
  feito

  [EMAIL PROTECTED]
  Analista de Sistemas
  itamar roloff
  -------------------------------------------
  ----- Original Message ----- 
  From: "Weber Luvisa" <[EMAIL PROTECTED]>
  To: <[EMAIL PROTECTED]>
  Sent: Friday, November 26, 2004 9:22 AM
  Subject: [delphi-br] DBGrid




  Olá amigos, uso o dbgrid em varias aplicações,
e estou tendo o
  seguinte problema.

  Fasso calculos de valores sempre que o usario
precione enter.

  tipo
  qdade * preco = Valor total

  mas tenho uns usuários que não estão dando
enter..

  eis o ratina de como esta ultimamete.

  if key = #13 then
  begin
    if Grid.selectindex = 0 then
    begin
       if
TBProdutos.Locate('codigo',TBItensCODIGO.value,[]
then
       begin
          Produtos := TBProdutosDESCRICAO.Value;
          Grid.selectindex := 2;
       end else
       begin
          Mensagem('produto não
encontrado','Atenção');
          Grid.selectindex := 0/
       end;
    end else if Grid.Selectindex = 2 then
       Vtotal := perco * qdade


  end;





  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER
ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
 
http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail
para:
  [EMAIL PROTECTED] ou
[EMAIL PROTECTED]

  Links do Yahoo! Grupos










  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER
ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
 
http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail
para:
  [EMAIL PROTECTED] ou
[EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
             
                    São Paulo Rio de Janeiro
Curitiba Porto Alegre Belo Horizonte Brasília  
             
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web,
acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail
para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está
sujeito aos Termos do Serviço do Yahoo!. 




[As partes desta mensagem que não continham texto
foram removidas]






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:

http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou
[EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:         
    
        
                           function
SearchComboBox() { if
(document.form_combo.keyword.value.length==0){ 
alert("Por favor, digite algo.");  return false;
}else {  document.form_combo.action
="http://br.rd.yahoo.com/SIG=12adoq1cv/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111264:HM/EXP=1101582109/A=2361264/R=0/SIG=11uaou2jn/*http://www.bondfaro.com/bondfaro/in/combosearch_in.jsp?sk=11";;
} return true;}                                  
       [input]                                   
                [input]                [input]   
                                       

---------------------------------
Links do Yahoo! Grupos

   Para visitar o site do seu grupo na web,
acesse:
http://br.groups.yahoo.com/group/delphi-br/
 
   Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
 
   O uso que você faz do Yahoo! Grupos está
sujeito aos Termos do Serviço do Yahoo!.
 

=====

       Leandro...

[> Mutuka <]  



        
        
                
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! 
http://br.acesso.yahoo.com/


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a