Jhonas

Monitores
  • Content Count

    9488
  • Joined

Community Reputation

0 Neutro

About Jhonas

Perfil

  • Gender
    Male
  • Location
    São Paulo

Recent Profile Visitors

23912 profile views
  1. Instale a versão Quickreport-v5.0.6 https://www.irdevelopers.com/post/17618/Quickreport-v5.0.6-for-Delphi-10.2-Tokyo-Full-Source.html abraço
  2. Voce está se referindo ao QuickReport ou outro ?
  3. ok... acho que estes exemplos vão te ajudar https://www.devmedia.com.br/artigo-clube-delphi-edicao-11-um-pequeno-ladrao/14933 outro unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Timer1: TTimer; Label1: TLabel; OpenDialog1: TOpenDialog; Button2: TButton; SpeedButton1: TSpeedButton; BitBtn1: TBitBtn; Memo1: TMemo; Label2: TLabel; Label3: TLabel; procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var p: TPoint; i: THandle; z, x: integer; s: array [ 0..4094 ] of char; Posicao: TRect; begin GetCursorPos ( p ); i := WindowFromPoint ( p ); Label1.caption := intToStr ( i ); z := strToInt ( Label1.caption ); GetWindowText ( z, s, x ); Label2.caption := s; GetWindowRect(i,Posicao); Label3.Caption := (Format('%d,%d',[Posicao.Left,Posicao.Top])); end; procedure TForm1.Button2Click(Sender: TObject); begin OpenDialog1.Execute; end; end. OBS: Neste exemplo, voce coloca varios componentes no Form ( inclui o dialog < componente não visual > nesse caso vai mostrar somente o handle e a posição ) Ao passar com o mouse sobre os componentes, vai mostrar nos Labels o Handle, o nome do componente e a posição dele em relação ao Form Verifique tambem o exemplo no link. Veja esse outro tambem ... vai ajudar http://www.marcocantu.com/epascal/English/ch09win.htm traduzido: https://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://www.marcocantu.com/epascal/English/ch09win.htm&prev=search. Abraço
  4. ok... vejamos se entendi o problema voce quer mover um dialog para uma posição especifica na tela, mas se a nova posição do dialog passar pelo edx+20 ( seria edit ? ou o que é isso ? ) voce grava a posição inicial, para que depois voce possa retornar o componente nessa posição ?
  5. explique aqui, o melhor que voce puder ... tentarei ajuda-lo o que exatamente voce está querendo fazer ? abraço
  6. Veja nesse link se é isso que voce quer https://www.blog.tyttosoft.com.br/post?pagina=6 abraço
  7. Exemplo nesse link: https://codeoncode.blogspot.com/2016/12/get-processid-by-programname-include.html abraço
  8. Voce tem 2 opções: 1 - Voce pode criar o TTreeView dinamicamente : removendo e criando os itens novamente ou 2 - Desabilitar os Nós que voce selecionar, mas dá mais trabalho. exemplo ( 1 ) : unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls; type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; const EX_LEVEL=2; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var MyTreeNode1, MyTreeNode2 : TTreeNode; begin with TreeView1.Items do begin Clear; MyTreeNode1 := Add(nil, 'Nó Pai1'); AddChild(MyTreeNode1,'Nó Filho1'); MyTreeNode2 := Add(MyTreeNode1, 'Nó Pai2'); AddChild(MyTreeNode2,'Nó Filho2'); MyTreeNode2 := TreeView1.Items[3]; AddChild(MyTreeNode2,'Nó Neto2a'); MyTreeNode2 := TreeView1.Items[4]; Add(MyTreeNode2,'Nó Neto2b'); MyTreeNode2 := TreeView1.Items[5]; Add(MyTreeNode2,'Nó Neto2c'); Add(MyTreeNode1, 'Nó Pai3'); MyTreeNode2 := TreeView1.Items[7]; AddChild(MyTreeNode2,'Nó Filho3'); MyTreeNode2 := TreeView1.Items[8]; AddChild(MyTreeNode2,'Nó Neto3a'); TreeView1.FullExpand; TreeView1.Items.EndUpdate; end; end; procedure TForm1.Button2Click(Sender: TObject); var MyTreeNode1, MyTreeNode2 : TTreeNode; begin with TreeView1.Items do begin Clear; MyTreeNode1 := Add(nil, 'Nó Pai1'); AddChild(MyTreeNode1,'Nó Filho1'); MyTreeNode2 := Add(MyTreeNode1, 'Nó Pai2'); AddChild(MyTreeNode2,'Nó Filho2'); MyTreeNode2 := TreeView1.Items[3]; AddChild(MyTreeNode2,'Nó Neto2a'); MyTreeNode2 := TreeView1.Items[4]; Add(MyTreeNode2,'Nó Neto2b'); MyTreeNode2 := TreeView1.Items[5]; Add(MyTreeNode2,'Nó Neto2c'); Add(MyTreeNode1, 'Nó Pai3'); MyTreeNode2 := TreeView1.Items[7]; AddChild(MyTreeNode2,'Nó Filho3'); MyTreeNode2 := TreeView1.Items[8]; AddChild(MyTreeNode2,'Nó Neto3a'); // Deleta o Nó Filho do Nó Pai1 TreeView1.Items.Delete(TreeView1.Items[1]); // Deleta o Nó Neto(a) do Nó Filho2 TreeView1.Items.Delete(TreeView1.Items[2].Item[0]); TreeView1.FullExpand; TreeView1.Items.EndUpdate; end; end; end. Abraço
  9. ok ... vou te dar algumas dicas de programação 1 - voce está usando .IBTable1 ( Interbase ) para acessar as suas tabelas 2 - o uso do Locate se mostrou muito rapido em tabelas PARADOX ( mas já deixei de usar a muito tempo e passei para o MYSQL ), mas se a tabela for muito grande, no Interbase, principalmente em rede, fica lento, pois a busca do Locate sempre será a partir do começo da tabela. 3 - prefira usar comandos SQL ( Select * from tabela ) usando o TIBQuery. A pesquisa é muito mais rápida. 4 - A sua lógica está correta, no entanto o uso do .ApplyUpdates; faz com que salve sempre na tabela, que voce estiver fazendo .... se voce tem um botão de Cancelar, já não podera mais cancelar o que foi feito ( teria que alterar novamente o registro ). Então use o comando Form9.IBTable1.Post; e no botão de Salvar, voce coloca o ApplyUpdates; 5 - Vend := StrToFloat(edit3.Text); Prod := StrToFloat(Form9.Ibtable1Qtde.Text); Form9.Ibtable1Qtde.Text := FloatToStr(Prod+Vend) Aqui tem algo errado: Se Vend é um valor ( R$ 35,00 ) e Prod é quantidade ( 4 ) porque voce esta colocando em Ibtable1Qtde > (Prod+Vend) ou seja 35,00 + 4 ??? 6 - Para facilitar o entendimento, use sempre variaveis que indiquem o que realmente são ex: Prod > nome do produto Quant > indicando quantidade Valor > valor do produto 7 - Adicionar Qtde Produto + Ele Mesmo Exemplo: Tabela Produtos PRODUTO - QUANT. - VALOR _UNIT - VALOR TOTAL - ESTOQUE MESA - 3 - 200,00 - 600,00 - 3 CADEIRA - 4 - 50,00 - 200,00 - 4 Obs: Ai voce faz uma venda de 1 mesa e atualiza o estoque PRODUTO - QUANT. - VALOR _UNIT - VALOR_TOTAL - ESTOQUE MESA - 2 - 200,00 - 400,00 - 2 CADEIRA - 4 - 50,00 - 200,00 - 4 Voce tem que procurar onde está o registro da mesa na tabela, antes de efetuar a operação de venda Isso é um exemplo: if Form9.Ibtable1.Locate('Produto',Form3.DbLookupcomboBox2.Text,[LopartialKey]) then begin Form9.IBTable1.Edit; Quant := StrToFloat(edit3.Text); Total := 0; Form9.Ibtable1Qtde.Value := Form9.Ibtable1Qtde.Value - Quant; Form9.Ibtable1Estoq.Value := Form9.Ibtable1Estoq.Value - Quant; Total := Form9.Ibtable1Qtde.value * Form9.Ibtable1Valor_Unit.Value; Form9.Ibtable1Valor_Total.Value := Total; Form9.Ibtable1.Post; end;
  10. Amigo, isso é muito específico ... se voce olhar a pagina 85 vai encontrar essas informações codigo : G029 - Forma de Pagamento onde IPTU/IPVA/LICENCIAMENTO E DPVAT se enquadram em pagamento de tributos procure no manual por: indicativo de forma de pagamento abraço
  11. não esta somando e sim jogando o valor por valor das Qtdes dentro do Banco!!!! mostre em que rotina está sendo executado esse comando
  12. Voce pode copiar o projeto para qualquer lugar... Se voce mudar o projeto do diretório D: para o Diretório C: não vai ter nenhum problema .... basta voce abrir o projeto pelo delphi no novo diretório e compilar novamente. OBS: Não esqueça de mudar tambem o caminho de acesso ao Banco de Dados Abraço
  13. Quais componentes voce esta usando para acessar o banco de dados via delphi ?
  14. Para o DBGrid no clientedataset (de 2 clicks no ClientDataSet para vizualizar os campos da sua tabela) Coloque na propriedade DisplayFormat = ,0.00;-,0.00 e na propriedade EditFormat = ,0.00;-,0.00 abraço
  15. ok ... outra sugestão mais simples use o componente Rotate Image http://www.delphiarea.com/products/delphi-components/rotateimage/ abraço