Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Jhonas

    [Duvida] WebBrowser1

    Faça uma pesquisa no forum e veja o que encontra http://scriptbrasil.com.br/forum/index.php...lite=WebBrowser abraço
  2. flavioavilela... simplificação de fração no delphi é dificil achar na net, entretanto isso não quer dizer que seja impossivel fazer alguma coisa nesse sentido. voce como programador deve usar a lógica e o conhecimento do delphi para criar as rotinas necessarias para a solução desse problema. então se voce se basear nos conceitos matemáticos, voce consegue montar essa rotina; CONCEITO DE FRAÇÕES Fração é todo par de números naturais na forma que mostra a figura 1, onde: o denominador “b” indica em quantas partes iguais o inteiro foi divido. O numerador “a” indica a quantidade utilizadas dessas partes. Como não existe divisão por zero, não existe fração com denominador igual a zero. Figura 1: Modelo de Fração. a - b LEITURA DE FRAÇÕES Para lermos uma fração, primeiro lemos o numerador, depois lemos o denominador, da seguinte forma: a) Denominadores 2 e 3 são lidos como meio e terços; B) Denominadores entre 4 e 9 são lidos como números ordinais; c) Denominadores 10, 100, 1000 são lidos como décimos, centésimos, milésimos; d) Denominadores acima de 10 (excluído os do item c) são lidos acrescentando-se a palavra “avos” no final. Para começar, faríamos um modelo em um esquema no delphi de uma fração, ou seja, essa estrutura matemática que tem um numerador e um denominador que divide o numerador, por exemplo, 18/6. A fração será o objeto e terá duas propriedades, o numerador e o denominador. Logo, poderia ter vários métodos como simplificar, somar com outra fração ou número, subtrair com outra fração, etc. De fato, ao se dividir os dois termos de uma fração pelo seu mdc, obtem-se quocientes primos entre si, e portanto formam uma fração irredutível. Além do mais, essa fração é igual à fração original uma vez que foi obtida dividindo-se seus dois termos por um mesmo número. No exemplo anterior o mdc(18,6) = 6 = 2 x 3, os fatores utilizados para se determinar a forma irredutível da fração dada. O mesmo resultado, claro, seria obtido se efetuassemos a divisão por 6. Simplificar uma fração é reduzir esta fração à uma fração mais simples mantendo-se a proporção da fração original. E o princípio que norteia a simplificação de frações é: uma fração não se altera quando dividimos seus termos por um mesmo número diferente de zero. Observe que para simplificar frações é necessário que haja um divisor comum, além da unidade, aos seus termos. E, torná-la irredutível é obter a fração equivalente em que o único divisor comum aos seus termos é a unidade, ou seja, quando o mdc – máximo divisor comum – entre o numerador e o denominador é igual a 1, o que é o mesmo que os seus dois termos serem primos entre si. Portanto, concluímos que ao fatorar dois ou mais números, o cálculo do mdc será calculado com a multiplicação dos fatores primos comum aos termos. como obter os numeros primos: http://scriptbrasil.com.br/forum/index.php...st&p=576041 OBS: A base do que voce precisa está ai.... tente se esforçar para conseguir desenvolver o raciocínio lógico em cima desse conceito. abraço
  3. primeiro verifique o seu HD se não tem Os bad blocks, ou bad clusters que são erros físicos na superfície dos discos magnéticos do HD, e isso pode fazer com que o HD perca os dados gravados nele. Os HDs atuais vem com uma pequena área reservada que serve para "substituir" pequenas áreas danificadas. Na verdade os endereços físicos dos discos são trocados, e a controladora passa a usar essa área reservada no lugar das áreas danificadas. Voce pode passar o scandisk para verificar os setores ruins do HD ... Coloque o cd de boot , e execute o scandisk /all outra solução seria você formatar o HD usando o utilitário fornecido pelo fabricante, o famoso disk Manager. Todos os fabricantes disponibilizam este programa gratuitamente em suas paginas, é só procurar. A Ontrack comercializa um Disk Manager, o Ontrack disk Manager, que tem a mesma função, mas serve para qualquer HD, porém este último é pago. Lembre-se que esta formatação utilizará a área reservada para corrigir os Bads, mas desde que sejam poucos. ------------------------------------------------------------------- outra coisa que voce pode tentar: os dados ficam armazenados em buffer antes de serem fisicamente gravados, então experimente utilizar um Table.FlushBuffers após todos os posts. voce tambem pode: 1- Na clausula Uses do seu form ou de seu DataModule (o q acho até melhor q colocar as tabelas em cada formulário) acrescente: DBIProcs ou BDE; 2- Nos eventos OnPost e OnRefresh de cada tabela digite: DbiSaveChanges(NomeDaTabela.Handle); ----------------------------------------------------------- voce tambem pode acrescentar no evento AfterPost de cada componente Table as linhas de código que estão abaixo. Na lista de Uses acrescente a unit DBIProcs. implementation uses DBIProcs; {$R *.DFM} procedure TForm1.Table1AfterPost(DataSet: Dataset); begin DBISaveChanges(Table1.Handle); end; end. Mais informações http://www.tecnobyte.com.br/feliz_com_paradox.pdf abraço
  4. Correção do Código procedure TfrmPedidos.SpeedButton1Click(Sender: TObject); begin modestoque.tbDetPed.First; while not modestoque.tbDetPed.Eof do begin if modestoque.tbProduto.Locate('CodPro',modestoque.tbDetPedCodPro.Value,[]) then begin if modestoque.tbDetPedBaixa.Value<> true then begin modestoque.tbProduto.Edit; modestoque.tbProdutoQuantEst.Value:=modestoque.tbProdutoQuantEst.Value - modestoque.tbDetPedQuantidade.Value; modestoque.tbProduto.Post; modestoque.tbDetPed.Edit; modestoque.tbDetPedBaixa.Value:=True; modestoque.tbDetPed.Post; end; end else begin showmessage('Registro não encontrado !'); exit; end; end; end; abraço
  5. do while not rs.eof %> <table width="150%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="19%"><%If dia_cat = 1 then%> <b>Dia:</b> <% dia_cat = 0 End If%> <%If dia_cat = 0 then%> &nbsp; <%End If%> </td> <td width="19%"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("diadb")%></font> </td> <td width="60%" align="left" bgcolor="#F0FFF8" bordercolor="#000033"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><b><%=rs("hits")%></b></font></td> <td width="2%">&nbsp;</td> </tr> </table> <% rs.movenext loop rs.close Logo após o < do while not rs.eof > voce deve testar se o fim o arquivo foi encontrado ... se não colocar esse teste para finalizar o loop, uma nova tentativa de ler o registro será comandada pelo while e ocorrerá o erro if rs.eof then rs.close // ou o comando para sair do loop end if abraço
  6. Tá dificil entender o que voce esta querendo abraço
  7. Veja o codigo que te passei usando a regra utilizando o digito 1 para os restos 0, 10 ou 1 (regra exclusiva para cálculo do DV geral do código de barras); Veja o seu codigo voce esta testando o valor de retorno e o outro codigo esta testando o valor de resto então pela regra se a variavel retorno recebe o valor do digito, então se o resto for 0, 10 ou 1 o dv obrigatoriamente devera ser 1 abraço
  8. 2 possiveis soluções: 1 - se voce não move o mouse funciona, então trave o mouse durante a impressão exemplo: Function BlockInput(ABlockInput: boolean): Boolean; stdcall; external 'USER32.DLL'; coloque o comando abaixo no inicio do procedimento BlockInput(true); //boqueia coloque o comando abaixo no final do procedimento BlockInput(false); // desbloqueia 2 - outro motivo pode ser o tamanho das figuras, se forem do tipo BMP ( que tem mais de 1 Mb ) pode ocorrer esse tipo de coisa na hora da impressão neste caso uma conversão de tipos resolve o problema ( BMP para JPG ) que tem um tamanho muito menor exemplo: procedure BmpToJpg(FileName: string); var Jpg: TJpegImage; Stm: TMemoryStream; Bmp: TBitmap; begin if FileExists(FileName) then begin Bmp := TBitmap.Create; Bmp.LoadFromFile(FileName); Jpg := TJpegImage.Create; Jpg.Assign(Bmp); Jpg.Compress; Stm := TMemoryStream.Create; Jpg.SaveToStream(Stm); Stm.Position := 0; Stm.SaveToFile(ChangeFileExt(FileName, '.jpg')); Stm.Free; Jpg.Free; Bmp.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var caminho : string; begin caminho := 'C:\FOTOS\Bmps\CHASSI5.BMP'; BmpToJpg(caminho); if pos('.',caminho)> 0 then delete(caminho,pos('.',caminho),4); caminho := caminho + '.JPG'; QReport.QRImageChassi.Picture.LoadFromFile(caminho); QReport.Preview; QReport.Print; end; end. Faça uma adaptação para o seu código abraço
  9. Veja este link http://www.macoratti.net/vb_drsde.htm abraço
  10. Esse erro ocorre quando o ponteiro do registro da tabela é forçado a ler o registro após o registro final. rs.movenext loop rs.close abraço
  11. ele está gravando exatamente o texto "recset!g01" porque ele esta delimitado por aspas a maneira de trazer o conteudo é sem as aspas recset!g01 Exemplo neste link: http://www.devdos.com/vb/lesson4.shtml abraço
  12. Faça essa modificação no seu código: While Not TableAntiga.EOF tel_antigo = TableAntiga!telefone barraProgresso.Value = contador barraProgresso.Refresh If Len(Trim(tel_antigo)) = 8 Then tel_novo = "19" + tel_antigo atualiza = "update tabela1 set telefone = " & "" atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & "" BancoDeDadosAntigo.Execute (atualiza) tel_antigo = '' End If contador = contador + 1 TableAntiga.MoveNext Wend abraço
  13. Jhonas

    Backup

    Veja estes: http://www.macoratti.net/d231202.htm http://www.macoratti.net/vb_bkfso.htm abraço
  14. É possivel sim... sem problemas .. mas se quiser um corte mais preciso, use o cortador manual ( apenas R$ 5,00 ) http://produto.mercadolivre.com.br/MLB-106...olite-fibra-_JM abraço
  15. Esse problema não é nem do delphi e nem do interbase ... e sim do processador do micro Os processadores AMD Athlon, AMD Duron, AMD Athlon XP, AMD Athlon XP-M, AMD Athlon MP, AMD Sempron processam muito bem o interbase, firebird ou mysql Placa mãe compativel com esses processadores: http://br.asus.com/product.aspx?P_ID=od83s...&templete=2 Neste caso voce terá que alterar o banco de dados para Paradox se não quiser que o seu cliente fique morrendo de raiva do programador....rs abraço
  16. voce mesmo deu a resposta.... zere as suas variaveis antes de efetuar os calculos abraço
  17. elimine o dv pois ele não é necessario quando é feita a leitura do código de barra IF (@RESTO = 1) BEGIN SET @RETORNO = (@SOMA % 11) END ELSE BEGIN SET @DIGITO = 11 - (@SOMA % 11) IF (@DIGITO > 9) SET @DIGITO = 0 SET @RETORNO = @DIGITO END RETURN @RETORNO END onde voce está testanto o resto 0 e 10 ? IF (@RESTO = 1) BEGIN SET @RETORNO = (@SOMA % 11) END ELSE BEGIN SET @DIGITO = 11 - (@SOMA % 11) IF (@DIGITO > 9) SET @DIGITO = 0 SET @RETORNO = @DIGITO END IF (@RESTO = 0) OR (@RESTO = 10) SET @RETORNO = 1 RETURN @RETORNO END abraço
  18. if CanClose then { se o comando para fechar for acionado } CanClose := false; { cancela o comando } Elimine este comando abraço
  19. RvSystem: Responsável pelo envio do relatório para a impressora ou para a tela de Preview. procedure TForm1.Button1Click(Sender: TObject); begin //Seta o Parametro versão com o conteúdo do Label1 RvProject1.close; RvProject1.ProjectFile:='c:\produtos.rav'; RvProject1.SetParam('Versao',Label1.Caption); //Executa o relatorio RvProject1.open; RvProject1.Execute; // testa a passagem do parametro para o relatorio impresso if pos('Vesão 1.0',Label1.Caption) > 0 then showmessage('O relatório foi impresso'); end; Isso é só uma idéia .. se o parametro foi passado para dentro do relatorio , voce pode testar o conteudo depois da impressão... ou voce pode tentar impressão direta sem dar o preview ou faça uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...ite=rave+report abraço
  20. Leia com atenção este artigo e encontrará a resposta http://www.delphibr.com.br/artigos/param_rave.php abraço
  21. Não sei se voce reparou, mas se voce colocar valores numericos no dbcheckbox ( ex: 1 ou 0 ) o campo deverá ser numerico de 1 posição se for utilizar ( ex: SIM ou não ) o campo deverá ser Caracter ou Alfanumerico de 3 posições se for utilizar ( ex: True ou False) o campo deverá ser Logical se o campo especificado para o dbcheckbox não for compativel com os valores colocados na propriedade ValueChecked e UnvalueChecked, o dbcheckbox não ficará habilitado. abraço
  22. com o valor selecionado no dblookupcombobox , voce pode criar uma query ( select ) para filtrar apenas os registros que voce precisa e mostra-los na tela abraço
  23. Isso não é verdade .... veja no help do delphi: de acordo com o que esta escrito voce pode usar uma lista de itens: exemplo: propriedade ValueChecked := 1; propriedade UnvalueChecked := 0; ou propriedade ValueChecked := Sim; propriedade UnvalueChecked := não; ou propriedade ValueChecked := Yes; propriedade UnvalueChecked := No; ou propriedade ValueChecked := Aberto; propriedade UnvalueChecked := Fechado; ou propriedade ValueChecked := True; propriedade UnvalueChecked := False; ou propriedade ValueChecked := On; propriedade UnvalueChecked := Off; etc... Agora se quiser um checkbox dentro do dbgrid sugiro usar o SMDBGrid da paleta de componentes SMComponentes http://www.scalabium.com/smcmtbl.htm http://www.4shared.com/file/107937069/d4c7...mponent355.html abraço
  24. Já que tentou tudo, que tal começar do zero com um exemplo que funciona e ai fazer uma correlação com o seu código ? Veja novamente o post 10 http://scriptbrasil.com.br/forum/index.php...st&p=577599 abraço
  25. Procure no forum o post que indica o Character Set como responsavel por esse tipo de ocorrencia abraço
×
×
  • Criar Novo...