Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

julioobao

Cruel II

Recommended Posts

Caros Amigos,

 

- Criei uma tabela no Delphi com 3 campos, sendo que o primeiro campo chama-se Cdi_42 é do tipo Number, o segundo campo chamasse Cdi_46 e o terceiro campo aquele que receberá a soma dos outros dois chamasse Cdi_Mes.

A minha intenção é a seguinte eu gostaria que quando o segundo campo(Cdi_46) perdesse o foco o resultado da soma(Cdi_42+Cdi_46) aparecesse no terceiro campo(Cdi_Mes).

Eu chegue a fazer dessa maneira e deu certo, mas...:

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

procedure TAtual.Cdi_46Exit(Sender: TObject);

begin

(Sender as TDBEdit).Color:=clWindow;

(Sender as TDBEdit).Font.Color:=clWindowText;

 

begin

Data1.TbAplicacoes['Cdi_Mes']:=Data1.TbAplicacoes.FieldByName ('Cdi_42').AsFloat+

Data1.TbAplicacoes.FieldByName('Cdi_46').AsFloat;

// Edit1.Text:=Data1.TbAplicacoes.FieldByName('Cdi_Mes').AsString;

 

end;

end;

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

...mas eu gostaria de fazer o mesmo que eu fiz acima só que com variáveis, ja tentei algumas maneiras e não consegui será que alguém pode me ajudar, é só fazer tudo o que o programa acima faz só que ao invés de usar diretamente os campos da tabela usar variaveis declaradas...Tem como?

 

Desde já agradeço a atenção,

 

Julio

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TAtual.Cdi_46Exit(Sender: TObject);

Var

Var1, Var2: Real;

begin

(Sender as TDBEdit).Color:=clWindow;

(Sender as TDBEdit).Font.Color:=clWindowText;

 

//para você não usar todo o caminho do componente, você pode fazer um typcast no DataSource, mas verifique primeira linha se a unit DbTables está adicionada, ou trabalhar só com o DataSouce.Dataset

 

Var1 := TBDEDataSet(DSCadastro.DataSet).FieldByName ('Cdi_42').AsFloat;

Var2 := TBDEDataSet(DSCadastro.DataSet).FieldByName ('Cdi_46').AsFloat;

TBDEDataSet(DSCadastro.DataSet).FieldByName('Cdi_Mes').AsFloat := Var1+Var2;

 

begin <--- Não precisa abrir um bloco

{Data1.TbAplicacoes['Cdi_Mes']:=Data1.TbAplicacoes.FieldByName ('Cdi_42').AsFloat+

Data1.TbAplicacoes.FieldByName('Cdi_46').AsFloat;}

// Edit1.Text:=Data1.TbAplicacoes.FieldByName('Cdi_Mes').AsString;

 

end; <---

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.