Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. 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;
  2. 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
  3. 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
  4. 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
  5. Quais componentes voce esta usando para acessar o banco de dados via delphi ?
  6. 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
  7. ok ... outra sugestão mais simples use o componente Rotate Image http://www.delphiarea.com/products/delphi-components/rotateimage/ abraço
  8. No primeiro link tem o endereço para o programa feito em Lazarus http://tinyurl.com/LazRotacionaImagem-7z OBS: Use o 7zip para descompactar o arquivo abraço
  9. coloquei este codigo no oncreate do formulario com o fortes e ele so imprimiu a ultima Onde está o comando para imprimir ... o código ai é só para saber se o arquivo existe ou não. coloquei este codigo no oncreate do formulario o codigo para imprimir não deve estar no OnCreate do formulário e sim no OnPreview ou em algum outro componente. abraço
  10. exemplos: http://fanzinepas.blogspot.com/2009/12/esta-semana-estava-fazendo-uma-pesquisa.html outro unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RxGIF, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses Math; function Rotacionar(Bitmap: TBitmap; const Angulo: Extended; bgColor: TColor): TBitmap; type PRGBQuadArray = ^TRGBQuadArray; TRGBQuadArray = array[0..0] of TRGBQuad; var bgRGB: TRGBQuad; BitmapInfo: TBitmapInfo; CosTheta: Extended; DC: HDC; dstBMP: HBITMAP; dstHeight: Integer; dstRGB: PRGBQuad; dstRGBs: PRGBQuadArray; dstWidth: Integer; iCosTheta: Integer; iSinTheta: Integer; NormalAngle: Extended; SinTheta: Extended; srcBMP: HBITMAP; srcHeight: Integer; srcRGBs: PRGBQuadArray; srcWidth: Integer; xDst: Integer; xODst: Integer; xOSrc: Integer; xPrime: Integer; xSrc: Integer; yDst: Integer; yODst: Integer; yOSrc: Integer; yPrime: Integer; yPrimeCosTheta: Integer; yPrimeSinTheta: Integer; ySrc: Integer; begin // Convertendo o background da imagem em formato RGB: bgColor := ColorToRGB(bgColor); with bgRGB do begin rgbRed := Byte(bgColor); rgbGreen := Byte(bgColor shr 8); rgbBlue := Byte(bgColor shr 16); rgbReserved := Byte(bgColor shr 24); end; // Calculando o Sen e Cos do ângulo de rotação: NormalAngle := Frac(Angulo / 360.0) * 360.0; SinCos(Pi * -NormalAngle / 180, SinTheta, CosTheta); iSinTheta := Trunc(SinTheta * (1 shl 16)); iCosTheta := Trunc(CosTheta * (1 shl 16)); // Ajustando o bitmap de origem: srcBMP := Bitmap.Handle; srcWidth := Bitmap.Width; srcHeight := Bitmap.Height; xOSrc := srcWidth shr 1; yOSrc := srcHeight shr 1; // Preparando a imagem de destino: dstWidth := SmallInt((srcWidth * Abs(iCosTheta) + srcHeight * Abs(iSinTheta)) shr 16); dstHeight := SmallInt((srcWidth * Abs(iSinTheta) + srcHeight * Abs(iCosTheta)) shr 16); xODst := dstWidth shr 1; if not Odd(dstWidth) and ((NormalAngle = 0.0) or (NormalAngle = -90.0)) then Dec(xODst); yODst := dstHeight shr 1; if not Odd(dstHeight) and ((NormalAngle = 0.0) or (NormalAngle = +90.0)) then Dec(yODst); // Inicializa o header do bitmap: FillChar(BitmapInfo, SizeOf(BitmapInfo), 0); with BitmapInfo.bmiHeader do begin biSize := SizeOf(BitmapInfo.bmiHeader); biCompression := BI_RGB; biBitCount := 32; biPlanes := 1; end; // Lendo bits RGB do bitmap de origem e destino: DC := CreateCompatibleDC(0); try BitmapInfo.bmiHeader.biWidth := srcWidth; BitmapInfo.bmiHeader.biHeight := srcHeight; GetMem(srcRGBs, srcWidth * srcHeight * SizeOf(TRGBQuad)); GdiFlush; GetDIBits(DC, srcBMP, 0, srcHeight, srcRGBS, BitmapInfo, DIB_RGB_COLORS); BitmapInfo.bmiHeader.biWidth := dstWidth; BitmapInfo.bmiHeader.biHeight := dstHeight; dstBMP := CreateDIBSection(DC, BitmapInfo, DIB_RGB_COLORS, Pointer(dstRGBs), 0, 0); finally DeleteDC(DC); end; // Rotacionando: dstRGB := @dstRGBs[(dstWidth * dstHeight) - 1]; yPrime := yODst; for yDst := dstHeight - 1 downto 0 do begin yPrimeSinTheta := yPrime * iSinTheta; yPrimeCosTheta := yPrime * iCosTheta; xPrime := xODst; for xDst := dstWidth - 1 downto 0 do begin xSrc := SmallInt((xPrime * iCosTheta - yPrimeSinTheta) shr 16) + xOSrc; ySrc := SmallInt((xPrime * iSinTheta + yPrimeCosTheta) shr 16) + yOSrc; if (DWORD(ySrc) < DWORD(srcHeight)) and (DWORD(xSrc) < DWORD(srcWidth)) then dstRGB^ := srcRGBs[ySrc * srcWidth + xSrc] else dstRGB^ := bgRGB; Dec(dstRGB); Dec(xPrime); end; Dec(yPrime); end; FreeMem(srcRGBs); // Resultado: Result := TBitmap.Create; Result.Handle := dstBMP; end; procedure TForm1.Button1Click(Sender: TObject); var lbAuxiliar: TBitmap; // Aqui criamos um TBitmap auxiliar; BackColor: TColor; begin if Assigned(Image1.Picture.Bitmap) then begin // Obtendo a cor de fundo do bitmap: BackColor := Image1.Picture.Bitmap.TransparentColor and not $02000000; lbAuxiliar := Rotacionar(Image1.Picture.Bitmap, -40, BackColor); try lbAuxiliar.TransparentColor := BackColor; lbAuxiliar.Transparent := Image1.Picture.Bitmap.Transparent; Image1.Picture.Bitmap.Assign(lbAuxiliar); finally lbAuxiliar.Free; end; end; end; end. abraço
  11. Exemplos: https://www.google.com.br/search?source=hp&ei=r9-rXKLLJOvC5OUP4MSB8Aw&q=mutex+delphi&o que=mutex+&gs_l=psy-ab.1.8.0l10.1440.3738..7738...0.0..0.124.666.0j6......0....1..gws-wiz.....0..0i131.pwrz_XR_QaQ abraço
  12. Por motivos de segurança, o Windows pode não permitir a ação de arrastar e soltar entre janelas com diferentes permissões de segurança. Como conseqüência, as mensagens WM_DROPFILES podem ser bloqueadas. http://delphidabbler.com/articles?article=11 abraço
  13. Vou direcionar esse tópico para o Forum do Windows abraço
  14. Mas voce postou no forum de delphi ... se for para fazer isso com delphi, basta usar o componente SaveDialog do delphi Obs: o delphi tambem permite que se crie o tipo de janela que se desejar abraço
  15. Só pra tirar a dúvida:] Esse janela é padrão do windows 10 .... é essa janela que voce quer mudar ?
  16. ok... faça o seguinte: abra o delphi no Form que aparece, voce vai clicar na aba de componentes e vai selecionar os componentes Button1: TButton; => Paleta Standard Memo1: TMemo; => Paleta Standard OpenDialog1: TOpenDialog; => Paleta Dialogs Edit1: TEdit; => Paleta Standard ( clique no componente da paleta e depois clique no Form ) Depois voce dá clique duplo no componente Button1 --- ele vai criar no Form a procedure procedure TForm1.Button1Click(Sender: TObject); Depois disso voce copia a parte do código que te passei procedure TForm1.Button1Click(Sender: TObject); var arq: TextFile; // declarando a variável "arq" do tipo arquivo texto linha: string; begin Memo1.Clear; // filtra os arquivos de uma pasta OpenDialog1.Filter := 'cfg files (*.cfg)|*.CFG'; if OpenDialog1.Execute then begin // coloca no edit o nome do arquivo escolhido Edit1.Text := OpenDialog1.FileName; AssignFile(arq, OpenDialog1.FileName); {$I-} // desativa a diretiva de Input Reset(arq); // Abre o arquivo para leitura {$I+} // ativa a diretiva de Input  if (IOResult <> 0) // verifica o resultado da abertura do arquivo then Memo1.Lines.Add('Erro na abertura do arquivo !!!') else begin // verifica se o ponteiro de arquivo atingiu a marca de final de arquivo while (not eof(arq)) do begin readln(arq, linha); // Lê uma linha do arquivo Memo1.Lines.Add(linha); // Adiciona a linha ao Memo end; CloseFile(arq); // Fecha o arquivo aberto end; end; end; Copie ele todo ... depois va no código do Form e cole em cima da procedure procedure TForm1.Button1Click(Sender: TObject); Depois é só compilar o programa e executar. OBS: Se voce quiser, tem varios exemplos detalhados na net para voce aprender https://www.google.com.br/search?source=hp&amp;ei=t5p2XJ-ACd3W5OUP5reVyAM&amp;q=ler+arquivo+txt+delphi&amp;o que=ler+arquivo+txt&amp;gs_l=psy-ab.1.6.0l10.787.3307..5326...0.0..0.99.1302.15......0....1..gws-wiz.....0..0i131.uEUkNaLkSmI abraço
  17. Não entendi ... o programa está pronto e com as linhas de comando comentadas, para voce saber o que ele faz. basta colocar os componentes no Form e usá-lo. Button1: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; Edit1: TEdit; No botão voce aciona o TOpenDialog para procurar o arquivo que voce quer e jogar o nome desse arquivo em um Edit. Uma vez escolhido o arquivo, ele será aberto e lido pela string linha readln(arq, linha); e depois o conteudo de cada linha é jogado dentro do Memo Memo1.Lines.Add(linha); e depois mostrado pelo Memo. Agora voce modifica para o seu uso. abraço
  18. Como voce não respondeu a ultima pergunta, fica valendo somente a leitura do arquivo exemplo: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var arq: TextFile; // declarando a variável "arq" do tipo arquivo texto linha: string; begin Memo1.Clear; // filtra os arquivos de uma pasta OpenDialog1.Filter := 'cfg files (*.cfg)|*.CFG'; if OpenDialog1.Execute then begin // coloca no edit o nome do arquivo escolhido Edit1.Text := OpenDialog1.FileName; AssignFile(arq, OpenDialog1.FileName); {$I-} // desativa a diretiva de Input Reset(arq); // Abre o arquivo para leitura {$I+} // ativa a diretiva de Input if (IOResult <> 0) // verifica o resultado da abertura do arquivo then Memo1.Lines.Add('Erro na abertura do arquivo !!!') else begin // verifica se o ponteiro de arquivo atingiu a marca de final de arquivo while (not eof(arq)) do begin readln(arq, linha); // Lê uma linha do arquivo Memo1.Lines.Add(linha); // Adiciona a linha ao Memo end; CloseFile(arq); // Fecha o arquivo aberto end; end; end; end. abraço
  19. OBS: Voce quer pesquisar alguma coisa dentro do texto ou simplesmente ler o conteudo do arquivo ? voce não respondeu essa pergunta Só para voce saber, arquivo com extensão cfg - significa que é um arquivo de configuração e dentro dele tem um xml <?xml version="1.0" encoding="utf-8"?> https://www.openthefile.net/pt/extension/cfg
  20. depois passo para voce o código para ler esses arquivos ... ok ?
  21. Se eu entendi, voce quer buscar o conteudo do arquivo ( dt-0060B9EE92B3-phone.cfg ) sendo que o nome do arquivo é o numero de ramal voip, que voce quer pesquisar, dentre os varios arquivos que estão em uma pasta do seu HD ... é isso mesmo ? OBS: Voce quer pesquisar alguma coisa dentro do texto ou simplesmente ler o conteudo do arquivo ?
  22. ok... agora preciso saber como os numeros estão dispostos nesse arquivo. voce precisa localizar um numero entre outros ? mostre uma parte desse arquivo, para que eu possa ter uma noção abraço
  23. Circuito eletronico da TV https://www.electronica-pt.com/esquema/func-download/20032/chk,8e31b25e69fff0d9fc2d0ab3509a48da/no_html,1/ Isso pode ser mau contato dos plugues ou dos flatcables ( se existirem ) Compre um Limpa Contatos...( custo na faixa de R$ 20,00 ) abra a TV e aplique o limpa contato em todos os plugues de entrada da TV e em todos os conectores que voce encontrar na placa ... depois veja se resolveu. Se não resolveu o problema, o arquivo mostra como proceder aos testes de verificação de funcionamento. abraço
  24. Como é que voce fez a limpeza nele ? que tipo de produto usou para isso ?
×
×
  • Criar Novo...