crf_h0m3r 5 Denunciar post Postado Julho 26, 2011 Bom galera, seguinte, como comecei há pouco tempo a estudar Delphi, tô fazendo uns programinhas pra tentar aprender mais, usar a prática mesmo, daí surgiu uma dúvida. Esse programa faz a soma das despesas no final do mês, por exemplo: Você seleciona o pagamento que foi feito, "Água" Digita o valor da cobrança "200,00" Clica no botão "Gravar" Ao clicar no botão, eu queria que uma variável qualquer guardasse esse valor, pois como vai ser a soma das despesas, ainda falta outras cobranças, como: Telefone, Luz, etc. Eu tenho um campo também chamado de "Total", que seria a soma de todas os valores gravados pelo usuário, e quando o mesmo clicar no botão "Parar" abre uma mensagem na tela escrito quanto ele gastou com despesas no final daquele mês Como eu ainda tô estudando e não sei bem quais os arquivos vocês vão precisar, vou colocar o código da unit, se precisar de mais algum é só pedir ^_^ unit uDespesas; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask; type TDespesas = class(TForm) labelValor: TLabel; labelEscPgmt: TLabel; labelTotal: TLabel; btnGravar: TButton; btnLimpar: TButton; fieldPagamento: TComboBox; fieldValor: TMaskEdit; fieldResultado: TEdit; btnParar: TButton; procedure btnGravarClick(Sender: TObject); procedure btnLimparClick(Sender: TObject); private { Private declarations } procedure LimparTela; public { Public declarations } end; var Despesas: TDespesas; implementation {$R *.dfm} procedure TDespesas.btnGravarClick(Sender: TObject); //var // i: Real; // x: Real; begin if (fieldValor.Text = '') or (fieldPagamento.ItemIndex < 0)then begin if fieldValor.CanFocus and fieldPagamento.CanFocus then ShowMessage('Preencha o(s) campo(s) selecionado(s)'); fieldValor.SetFocus; fieldPagamento.SetFocus; fieldValor.Color := RGB(190,65,0); //depois background fieldPagamento.Color := RGB(190,65,0); fieldValor.Font.Color := RGB(255,255,255); //depois fonte fieldPagamento.Font.Color := RGB(255,255,255); end; fieldResultado.Text := fieldValor.Text; // i := StrToFloat(fieldResultado.Text); // x := i; // while x <= i do // Inc(i,1); // ShowMessage(FloatToStr(i)); end; procedure TDespesas.btnLimparClick(Sender: TObject); var i: Integer; begin for i := 0 to Despesas.ComponentCount - 1 do if Despesas.Components[i] is TMaskEdit then TMaskEdit(Despesas.Components[i]).Clear else if Despesas.Components[i] is TComboBox then LimparTela else if Despesas.Components[i] is TEdit then TEdit(Despesas.Components[i]).Clear; end; procedure TDespesas.LimparTela; begin fieldPagamento.Items.Clear; end; end. Os campos comentados foram as tentativas, hehe. Edit: Não, ele não grava num banco de dados. Como eu disse, ainda estou iniciando, não quero usar um banco de dados agora, quero apenas entender a aplicação. Mas tô querendo usar, mais na frente, o ClientDataSet. Compartilhar este post Link para o post Compartilhar em outros sites
crf_h0m3r 5 Denunciar post Postado Julho 26, 2011 Resolvido. Coloquei uma variável no escopo global e depois uma no escopo do botão e fiz a soma delas. Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Julho 28, 2011 Iria sugerir isto a principio, mas não consegui chegar antes =/ Compartilhar este post Link para o post Compartilhar em outros sites