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