
Vivendo&Aprendendo
Membros-
Total de itens
856 -
Registro em
-
Última visita
Tudo que Vivendo&Aprendendo postou
-
Olá Dei uma mudada no exemplo e acho que agora resolve o seu problema, faça o seguinte: No Evento OnCreate coloque esse código: procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cols[0].Text := 'APARELHO'; StringGrid1.Cols[1].Text := 'QTDE'; StringGrid1.Cols[2].Text := 'POTÊNCIA'; StringGrid1.Cols[3].Text := 'CONSUMO'; StringGrid1.Cols[4].Text := 'TOTAL'; end; Veja que ele cria mais uma coluna na tabela, logo você deverá alterar a propriedade ColCount da stringgrid para 5; No OnClick do botão calular coloque esse código: procedure TForm1.BtnCalcularClick(Sender: TObject); Var Total, TotalGeral, Linha, Coluna, Fim, Qtde, Consumo, Potencia : Integer; begin Fim := StringGrid1.RowCount + 1; Linha := 1; While Linha < Fim do begin Coluna := 1; If StringGrid1.Cells[1,Linha] = '' Then StringGrid1.Cells[1,Linha] := '0'; If StringGrid1.Cells[2,Linha] = '' Then StringGrid1.Cells[2,Linha] := '0'; If StringGrid1.Cells[3,Linha] = '' Then StringGrid1.Cells[3,Linha] := '0'; Qtde := StrToInt(StringGrid1.Cells[Coluna,Linha]); Coluna := Coluna + 1; Potencia := StrToInt(StringGrid1.Cells[Coluna,Linha]); Coluna := Coluna + 1; Consumo := StrToInt(StringGrid1.Cells[Coluna,Linha]); Total := (Qtde * Potencia * Consumo); StringGrid1.Cells[4,Linha] := IntToStr(Total); TotalGeral := TotalGeral + StrToInt(StringGrid1.Cells[4,Linha]); Linha := Linha + 1; end; Edit1.Text := intToStr(TotalGeral); end; Esse código passa campo por campo, linha por linha e coluna por coluna fazendo os cálculos; E fiz um botão limpar campos, no OnClick desse outro botão coloque esse código: procedure TForm1.BtnLimparClick(Sender: TObject); Var Fim, Linha, Coluna, FimCol : Integer; begin If Application.MessageBox('Tem certeza que deseja apagar as informações?','Aviso!',MB_ICONQUESTION+MB_YESNO)= 6 Then begin Fim := StringGrid1.RowCount + 1; FimCol := StringGrid1.ColCount; Linha := 1; Coluna := 0; While Coluna < FimCol Do begin While Linha < Fim do begin StringGrid1.Cells[Coluna,Linha] := ''; Linha := Linha + 1; end; Coluna := Coluna + 1; Linha := 1; end; end; end; Acho que agora resolveu o seu problema, mas caso queira o exemplo que fiz me adiciona no MSN que te mando. aslalexandre@hotmail.com Abraços Alexandre
-
(Resolvido) Como saber se um campo da tabela foi alterado?
pergunta respondeu ao Duduh_Capixaba de Vivendo&Aprendendo em Delphi, Kylix
Olá DuDuh_Capixaba.. E se você criar apenas uma variavel do tipo string, sendo que quando for adicionar outros valores que não sejam string você converteria antes... Crie uma variavel tipo texto. Var Aux : String begin if tbTable.Fields[1].Value = '' then begin Aux := tbTable.Fields[1].Value; tbTable.Edit; tbTable.Fields[1].Value := variável; If Aux = Variavel Then faz o que você deseja else faz outra coisa tbTable.Post; end; Não sei bem se isso resolve seu problema mas a principio o que sei é isso ai... :rolleyes: Abraços -
Olha se você utilizar banco de dados para salvar as informações como aparelho, quantidade, consumo diário, etc, fica mais fácil porque ai é só percorrer a tabela fazendo os cálculos. Caso queira fazer sem banco de dados, você não poderá salvar as informações que digitar servirá apenas para consulta, para saber qual o consumo e pronto. Adicione no form u os seguinte componentes: 1 - Botão; 1 - Edit; 1 - StringGrid; Deixe a stringgrid com as seguintes propriedades alteradas: FixedCols = 0; Options > goEditing = True; No OnCreate do form coloque este código: StringGrid1.Cols[0].Text := 'APARELHO'; StringGrid1.Cols[1].Text := 'QTDE'; StringGrid1.Cols[2].Text := 'POTÊNCIA'; StringGrid1.Cols[3].Text := 'CONSUMO'; Aqui será criado os items que você mencionou. E para calcular coloque este código no OnClick do botão: procedure TForm1.Button1Click(Sender: TObject); Var Total : Real; Cont, Fim : Integer; begin Cont := 1; Fim := StringGrid1.ColCount + 1; While Cont < Fim do begin Total := Total + StrToFloat(StringGrid1.Cells[3,Cont]); Cont := Cont + 1; end; Edit1.Text := FloatToStr(Total); end; Compile e veja que já irá aprecer os items na primeira linha, nas linhas abaixo digite os valores desejados. Acredito que isso possa te ajudar. Abraços
-
(Resolvido) Como anular a tecla TAB
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
É que eu tentei deixar esta função que você me passou em um form e usá-la em outro só chamando mas não funcionou deu erro. E se alguém ai souber como faço para não dar o som de beep quando passo de um campo para o outro usando o enter eu agradeço também... :rolleyes: Alexandre -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Ok... Micheus.. valeu -
(Resolvido) Como anular a tecla TAB
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá Niubi Olha funcionou beleza, mas como eu faço para tirar o beep que ocorre quando teclo enter e o foco muda de campo? E como faço para deixar a função em uma unit e só chamar ela nas outras depois? Abraços Alexandre -
(Resolvido) Buscar caminho salvo de imagem
pergunta respondeu ao robinhocne de Vivendo&Aprendendo em Delphi, Kylix
Olá Eu salvo o caminho no banco da mesma forma, mas uso o access e faço da seguinte forma no OnActivate do form: Try Image1.Picture.LoadFromFile(TABELA.FieldByName(CAMPO_DA_IMAGEM).AsString); except Application.MessageBox('A Figura não foi encontrada!','Aviso',mb_IconInformation +mb_ok); end; Abraços Alexandre -
Galera eu fiz em minha aplicação a alteração para que a tecla Enter funcione como a tecla TAB para mudar de campos, mas agora eu preciso anular a tecla Tab em todo o meu form, fazer com que ao precionar Tab nada aconteça. Como eu posso fazer isso? Já tentei no OnKeyDown fazer a tecla receber 0, Null, e nada acontece quando preciono Tab ele joga o foco para o outro campo e não posso deixar isso acontecer. Alguém ai tem outra idéia? Abraços Alexandre
-
Você está usando algum banco para isso?
-
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Micheus me desculpe, mas configurei o panel e o timage, já troquei as propriedades para ver se muda alguma coisa e nada. No topo fica em branco como se não tivesse imagem. As propriedades estão da seguinte maneira: Panel da imagem Align = alcliente bevelinier = bvnone bevelouter = bvnone Dentro desse panel estão os dois images da esquerda e o central. Image: Align = alclient AutoSize = true Center = true Stretch = true Essas já mudei para false e não funcionou também. Abraços -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olha Micheus funcionou, agora os forms aparecem na frente do panel, mas ainda há um probleminha: a imagem que eu escolho para abrir como plano de fundo não vem no tamanho correto, ou seja, ela pega apenas um pedaço do form e o outro fica sem nada, no topo e na esquerda ela fica sem imagem, tipo fica como começando a imagem no left 50 e no topo 30 por exemplo.. -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá Micheus... Muito obrigado pelas dicas... Só há um problema ainda... fiz as alterações que você me enviou, mas quando coloco um panel e o image sobre ele e ai abro os forms do meu sistema que são MDI os forms não aparecem, eles ficam atrás do panel. Já tentei dar um Send To Back mas não funcionou. O que pode ser? Abraços -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Já te enviei... Obrigado -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá Micheus, consegui fazer uma aplicação menor gerando o mesmo erro (Piscando), como eu faço para enviar para você? Se é que posso! Abraços -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Tem um detalhe Jhonas. Não posso tirar o Panel por que tem botões que devem ficar nele e a label tem que ficar nele também. Abraço -
(Resolvido) Consulta Sql com distinct
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá Denis Muito obrigado por tudo, deu certo agora... ficou assim: Select Sum (ValorRestante), Sum(ValorTotal), Cliente, Situacao from ContasReceber Group by Cliente, Situacao Agora entendi o código.... Abraços -
(Resolvido) Consulta Sql com distinct
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Denis... Deixei a tabela Contas Receber sem o código que era primary Key e coloquei o campo CodCliente. E agora? -
(Resolvido) Consulta Sql com distinct
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Sim Denis... quando eu coloco o campo Codigo da o segundo erro que te passei... -
(Resolvido) Consulta Sql com distinct
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá pessoal, deculpe-me pelo banco desnormalizado irei estudar sobre isso. Mas seguindo as dicas de vocês olha o que acontece, se eu usar os códigos como abaixo: Select Cliente, Sum(ValorRestante)As Total From ContasReceber Group by Cliente Desta forma da o seguinte erro: ADOContasReceber: Field 'Codigo' not found. Então pensei em adicionar todos campos da tabela na consulta, ai deu este erro: Você tentou executar uma consulta que não inclui a expressão 'Codigo' especificada como parte de uma função agregada. Qual a dica de vocês para eu poder corrigir isto. Abraços -
(Resolvido) Consulta Sql com distinct
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Pirambu, não serviu ou eu não soube como adicionar na minha necessidade, mas o meu caso é o seguinte: tenho todos esses dados que informeiu em apenas uma tabela ContasReceber e não em duas como eu percebi na sql que você me enviou (ContasReceber e Clientes). Poderia me explicar melhor? Alexandre -
Galera é o seguinte: Tenho uma tabela de contas a receber e nesta tenho inumeros registros, e vários do mesmo cliente, tipo: Tabale Contas a Receber Codigo Cliente DataVencimento Valor 1 Alexandre 01/07/2008 10,00 2 Alexandre 01/08/2008 13,00 3 Alexandre 01/09/2008 23,00 4 Alexandre 01/10/2008 190,00 No meu form de contas a receber aparece desta maneira, até ai tudo certo está funcionando certinho, recebendo e tudo mais. O que eu quero é saber como eu faço para que apareça todos os valores que cada cliente está devendo em apenas uma linha, tipo: Cliente Valor Alexandre 236,00 Eu sei que o Distinct faz essa união mas somente com registros totalmente iguais. Como eu posso fazer isso? Abraços Alexandre
-
Ola Para salvar tudo maiusculo ou tudo minusculo no banco basta mudar a propriedade CharCase de cada Edit: Maiusculo mude para: ecUpperCase; Minusculo mude para: ecLowerCase; Abraços
-
Consulta SQL em BD Access 2003 com DELPHI 7
pergunta respondeu ao Beto Passini de Vivendo&Aprendendo em Delphi, Kylix
Olá eu uso da seguinte forma: TABELA.Close; TABELA.SQL.Clear; TABELA.SQL.Add('Select * From TABELA); TABELA.SQL.Add('Where CAMPO_DATA between :Inicial and :Final'); TABELA.Parameters.ParamByName('Inicial').Value := StrToDate(EDIT1.Text); TABELA.Parameters.ParamByName('Final').Value := StrToDate(EDIT2.text); TABELAeques.Open; Neste caso eu tenho dois edit's e coloca uma data em cada um deles e a sql busca todos os registros entre essas duas datas. Para um edit apenas acredito que basta tirar um parametro desse ai... Abraços... qualquer coisa posta ai Alexandre -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá O plano de fundo é um componente TImagem, no meu banco de dados tenho uma tabela de Senhas para cadastrar os usuários do sistema, a sua senha, as telas que ele poderá ter acesso e a imagem que ele configurar como plano de fundo. Essa é a imagem que aparecerá no plano de fundo sempre que ele acessar o sistema, na tabela eu salvo apenas o caminho da imagem, ai quando acesso o sistema no OnActivate ele vai la na tabela verifica o caminho e joga a imagem para o TIMagem, tudo isso funciona certinho. O problema é que agora quero colocar no form uma label para ficar "andando" e mostrando quanto o usuário ainda tem para Receber e para Pagar até o dia autal, isso também está certinho, mas quando abro o sistema e a label começa a "andar" o TImage fica piscando conforme a intervalo atribuido no Timer. Esse é o meu problema... Não sei se fui claro... Abraços -
(Resolvido) Imagem piscando por causa do timer
pergunta respondeu ao Vivendo&Aprendendo de Vivendo&Aprendendo em Delphi, Kylix
Olá Micheus e Jhonas. É o seguinte, tenho um form que nele tem: um TImage (ImgPrinc) como plano de fundo que recebe a imagem onde o endereço dessa imagem está salvo no banco de dados, tem um Panel (PnTopo) que fica no topo do form e neste panel tenho uma label (LblInf) que deve ficar "andando" pelo panel (PnTopo). A imagem do TImage (ImgPrinc) não tem nada haver com o código que faz a Label (LblInf) andar no panel. Segue abaixo o código do Timer que faz a label andar e o código que puxa o endereço do banco de dados e joga a imagem no Timage. Código do Timer: If LblInf.Top >= -(LblInf.Height) then LblInf.Top := LblInf.Top - 1 else LblInf.Top := PnTopo.Height; Código para puxar a imagem que está no OnActivate do Form: Try OpenPictureDialog.FileName := DmDados.Senhas.FieldByName('Tela').AsString; ImgPrinc.Picture.LoadFromFile(OpenPictureDialog.FileName); except Application.MessageBox('A Figura não foi encontrada!','Aviso',mb_IconInformation +mb_ok); end; É isso ai, se puderem me ajudar agradeço; Alexandre