-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
O id do username muda constantemente, ficando dificil pegar o valor WebBrowser1.OleObject.Document.all.Item('5828791c-edc8-46bd-b5bf-211bd2ea1840.loginForm.username', 0).value := WebBrowser1.OleObject.Document.all.Item('032d5a16-b1fb-44c0-9db0-993f47b7b526.loginForm.username', 0).value := Não tenho conhecimento em como proceder neste caso ... teria que pesquisar mais a fundo, o que agora não tenho tempo mas deixo 2 links que poderão ajuda-lo na pesquisa http://robsonmagno.wordpress.com/2011/12/16/manipular-web-forms-usando-o-twebbrowser/ http://delphi.about.com/od/twebbrowser/a/submit_web_form_2.htm abraço
-
me passa o endereço que voce esta usando
-
Abandonar minha profissão e entrar ou mesclara com TI
tópico respondeu ao guigui45 de Jhonas em Outros Assuntos
Amigo, conheço bem esse seu dilema .... me formei em economia, mas acabei na área de eletronica e programação Mas ao meu ver, o programador tem uma vantagem sobre todo mundo. Ele pode ganhar dinheiro com sua própria criação viva, como um sistema escalonado e até mesmo um aplicativo que faz e coloca na Apple store. Aquilo lá vai continuar fazendo dinheiro enquanto ele dorme. isso que voce disse está totalmente correto .... existem empresas que te pagam 30 mil somente por um jogo desenvolvido para celular, mas elas mesmo ganham 100 ou 1000 vezes mais com esse jogo ou outro programa ( exemplo Bill Gates ) ou voce pode ganhar muito com aplicativos desenvolvidos para sistema Android ou outros voce pode desenvolver programas para empresas e pedir um aluguel mensal .. a empresa fica muito tempo amarrado em voce ( o que é bom financeiramente, mas por outro lado te amarra tambem ) então prefiro desenvolver o programa e vender a licença de uso permanente e me chamam somente quando necessario; dessa forma fico livre para fazer outras coisas. a desmotivação, vem justamente do motivo de voce não poder criar nada novo, de ter idéias e não poder po-las em pratica, de ver que preferem pagar 3 mil numa peça de carro, mas não querem pagar 3 mil num programa para a sua empresa. prefiro mostrar o custo beneficio para o cliente ... cobrei de um cliente 5 mil em um programa, depois de 1 ano ele ganhou 140 mil com o mesmo programa ... e como voce disse, cada dia mais o mundo irá se informatizar, e o mercado ainda está muito aberto a isso. por fim, trabalhe sempre naquilo que gosta, e pense que Deus sempre tem o melhor caminho para voce ( basta pedir a Ele ) Abraços -
vamos preencher os campos E-mail e Senha do BOL e depois clicar no botão ENTRAR primeiro precisamos reconhecer no código da pagina os identificadores dos campos e do botão para isso veja o código fonte da pagina do BOL - E-mail <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR...DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"/> <title>BOL Mail</title> <link rel="shortcut icon" href="http://img.bol.com.br/favicon.ico" type="image/x-icon"/> <link href="http://email.bol.uol.com.br/c/bol-mail-20130108.css" media="screen" rel="stylesheet" type="text/css"/> <script src="http://barra.bol.com.br/scripts/functions.js" type="text/javascript"></script> <script type="text/javascript" src="http://me.jsuol.com/rm/clicklogger_namespace.js"></script> <script type="text/javascript">UOLRM.check(58);</script> </head> <body class="section-ajuda area26"> <div id="all"> <script type="text/javascript" src="http://barra.bol.com.br/scripts/barra-v3.js"></script> <div id="home-content"> <h1>BOL Mail</h1> <form action="https://visitante.acesso.uol.com.br/login.html" method="post" id="fWM" class="login-form"> <input type="hidden" value="bol-default" name="skin"/> <input type="hidden" value="WEBMAIL" name="dest"/> <fieldset> <p class="fields clearfix"> <label for="user"> E-mail: </label> <input class="text-field" id="username" name="user" type="text"/> <input type="hidden" value="" name="userconcat"/> <span class="extra"> @bol.com.br </span> </p> <p class="fields clearfix"> <label for="pass"> Senha: </label> <input class="text-field" id="pass" name="pass" type="password"/> <button class="entrar" type="submit">Entrar</button> </p> </fieldset> <div id="options" class="clearfix"> <a class="linksLogin" href="https://sac.uol.com....a.html?skin=bol"><span>Esqueceu a senha?</span></a> <a class="linksLogin" href="https://sac.uol.com.br/usuario/senha.html?skin=bol"><span>Alterar senha</span></a> <a class="linksLogin" href="http://email.bol.com.br/ajuda/"><span>Ajuda</span></a> </div> </form> <div id="features"> <a href="/ajuda/" class="homepacote"> <h2>O BOL tem o melhor pacote de e-mail grátis pra você</h2> </a> <ul class="clearfix"> <li><a href="http://email.bol.uol.com.br/gigamail">E-mail com 6GB</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/calendario/">Calendário com agenda</a></li> <li><a href="http://blog.bol.uol.com.br/">Blog e fotoblog</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bandalarga/">Banda larga *</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bate-papo-camera.jhtm">Bate-papo com câmera</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/antispam/">Antispam</a></li> <li class="obs">* Exclusivo para quem tem Speedy</li> </ul> </div> <a class="signup" href="https://cadastro.uol.com.br/indexb.html?skin=bol/pf"> <span>Inscreva-se grátis!</span> </a> </div> <div id="home-links" class="flt_b"> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_gigamail.png"></dt> <dd><h2>BOL Gigamail</h2> <p>Dobre o espaço do seu BOL Mail de 6GB para 12GB e guarde mais fotos vídeos e músicas</p> <a href="http://clicklogger.rm.uol.com.br/?prd=72&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://email.bol.uol.com.br/gigamail ">Saiba mais</a> </dd> </dl> <span class="sep-v"></span> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_suporte_tel.png"></dt> <dd><h2>BOL Suporte Telefônico</h2> <p>Seu canal de atendimento para tirar dúvidas sobre instalação, configuração de e-mail e modem.</p> <a href="http://clicklogger.rm.uol.com.br/?prd=71&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://suportetelefonico.bol.uol.com.br ">Saiba mais</a> </dd> </dl> </div> <script type="text/javascript">WriteCopyBol();</script> <div class="uolhost"><a href="http://www.uolhost.com.br/hospedagem-de-sites.html" target="_blank">Hospedagem</a>: <a href="http://www.uolhost.com.br/" target="_blank">UOL Host</a></div> <script type="text/javascript" src="http://jsuol.com/c/jquery/jquery.js"></script> <script language="JavaScript" type="text/javascript" src="http://me.jsuol.com/omtr/bolemail.js"></script> <script language="JavaScript" type="text/javascript">var s_code=uol_sc.t();if(s_code){document.write(s_code);}</script> <script type="text/javascript" src="http://jsuol.com/b/ie6/ie6alert.js" charset="iso-8859-1"></script> <script type="text/javascript" src="https://simg.uol.com.br/nocache/sac/menusac.min.js"></script> </body> </html> Campo E-mail <input class="text-field" id="username" name="user" type="text"/> Campo Senha <input class="text-field" id="pass" name="pass" type="password"/> Botão ENTRAR <button class="entrar" type="submit">Entrar</button> para os campos E-mail e Senha temos um identificador id="username" e id="pass" para o botão class="entrar" OBS: tem muitas formas de montar o código, vou passar uma delas uma forma bem simples de preencher os campos seria: WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'treinamento@bol.com.br'; WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'senhaxyz'; já para clicar no botão, poderiamos optar pela classe ou pelo nome do elemento botão que seria BUTTON mas como pode haver varios outros elementos na pagina, então devemos procurar o elemento que queremos if (Elements.item(i).tagName = 'BUTTON') then agora vamos ao código .... em um Form coloque um componente WebBrowser e 3 botões o botão 1 sera para iniciar a navegação no Webbrowser o botão 2 será para preencher os campos E-mail e Senha o botão 3 será para clicar no botão ENTRAR unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // Entrar na pagina WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl'); end; procedure TForm1.Button2Click(Sender: TObject); begin // Preencher os campos E-mail e Senha WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'meuemail@bol.com.br'; WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'minhasenha'; end; procedure TForm1.Button3Click(Sender: TObject); var Elements: OleVariant; i: Integer; begin // Evitar erros de Scripts WebBrowser1.Silent := true; // Procurar pelo botão e clicar nele Elements := WebBrowser1.OleObject.Document.forms.item(0).elements; for i := 0 to (Elements.Length - 1) do if (Elements.item(i).tagName = 'BUTTON') then Elements.item(i).Click; end; end. ============================================================================= agora vamos fazer de modo que eu apenas clique no botão 1 para chamar a pagina e o resto ele faça sozinho para isso vamos usar a propriedade OnDocumentComplete do Webbrowser onde após o carregamento da pagina, o código será automaticamente executado interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; procedure Button1Click(Sender: TObject); procedure WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses MSHtml, ActiveX; procedure TForm1.Button1Click(Sender: TObject); begin // Entrar na pagina WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl'); end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var CurrentBrowser: IWebBrowser2; TopBrowser: IWebBrowser2; Document: OleVariant; Doc3 : IHTMLDocument3; Frm : IHtmlFormElement; Elements: OleVariant; i: Integer; begin CurrentBrowser := pDisp as IWebBrowser2; TopBrowser := (Sender as TWebbrowser).DefaultInterface; if Assigned(CurrentBrowser) and Assigned(TopBrowser) then begin if CurrentBrowser = TopBrowser then begin Doc3 := CurrentBrowser.Document as IHTMLDocument3; Webbrowser1.OnDocumentComplete := nil; Doc3.getElementById('username').setAttribute('value', 'meuemail@bol.com.br', 0); Doc3.getElementById('pass').setAttribute('value', 'minhasenha', 0); WebBrowser1.Silent; Elements := WebBrowser1.OleObject.Document.forms.item(0).elements; for i := 0 to (Elements.Length - 1) do if (Elements.item(i).tagName = 'BUTTON') then begin WebBrowser1.Silent := true; Elements.item(i).Click; end; end; end; end; end. =========================================================================== OBS: Existem outras formas de se fazer a mesma coisa abraço
-
Ok amigo... vamos a um exemplo pratico ... Preencher os campos E-mail e Senha do BOL vamos preencher os campos E-mail e Senha e depois clicar no botão ENTRAR primeiro precisamos reconhecer no código da pagina os identificadores dos campos e do botão para isso veja o código fonte da pagina <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"/> <title>BOL Mail</title> <link rel="shortcut icon" href="http://img.bol.com.br/favicon.ico" type="image/x-icon"/> <link href="http://email.bol.uol.com.br/c/bol-mail-20130108.css" media="screen" rel="stylesheet" type="text/css"/> <script src="http://barra.bol.com.br/scripts/functions.js" type="text/javascript"></script> <script type="text/javascript" src="http://me.jsuol.com/rm/clicklogger_namespace.js"></script> <script type="text/javascript">UOLRM.check(58);</script> </head> <body class="section-ajuda area26"> <div id="all"> <script type="text/javascript" src="http://barra.bol.com.br/scripts/barra-v3.js"></script> <div id="home-content"> <h1>BOL Mail</h1> <form action="https://visitante.acesso.uol.com.br/login.html" method="post" id="fWM" class="login-form"> <input type="hidden" value="bol-default" name="skin"/> <input type="hidden" value="WEBMAIL" name="dest"/> <fieldset> <p class="fields clearfix"> <label for="user"> E-mail: </label> <input class="text-field" id="username" name="user" type="text"/> <input type="hidden" value="" name="userconcat"/> <span class="extra"> @bol.com.br </span> </p> <p class="fields clearfix"> <label for="pass"> Senha: </label> <input class="text-field" id="pass" name="pass" type="password"/> <button class="entrar" type="submit">Entrar</button> </p> </fieldset> <div id="options" class="clearfix"> <a class="linksLogin" href="https://sac.uol.com.br/usuario/esqueci-senha.html?skin=bol"><span>Esqueceu a senha?</span></a> <a class="linksLogin" href="https://sac.uol.com.br/usuario/senha.html?skin=bol"><span>Alterar senha</span></a> <a class="linksLogin" href="http://email.bol.com.br/ajuda/"><span>Ajuda</span></a> </div> </form> <div id="features"> <a href="/ajuda/" class="homepacote"> <h2>O BOL tem o melhor pacote de e-mail grátis pra você</h2> </a> <ul class="clearfix"> <li><a href="http://email.bol.uol.com.br/gigamail">E-mail com 6GB</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/calendario/">Calendário com agenda</a></li> <li><a href="http://blog.bol.uol.com.br/">Blog e fotoblog</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bandalarga/">Banda larga *</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bate-papo-camera.jhtm">Bate-papo com câmera</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/antispam/">Antispam</a></li> <li class="obs">* Exclusivo para quem tem Speedy</li> </ul> </div> <a class="signup" href="https://cadastro.uol.com.br/indexb.html?skin=bol/pf"> <span>Inscreva-se grátis!</span> </a> </div> <div id="home-links" class="flt_b"> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_gigamail.png"></dt> <dd><h2>BOL Gigamail</h2> <p>Dobre o espaço do seu BOL Mail de 6GB para 12GB e guarde mais fotos vídeos e músicas</p> <a href="http://clicklogger.rm.uol.com.br/?prd=72&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://email.bol.uol.com.br/gigamail ">Saiba mais</a> </dd> </dl> <span class="sep-v"></span> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_suporte_tel.png"></dt> <dd><h2>BOL Suporte Telefônico</h2> <p>Seu canal de atendimento para tirar dúvidas sobre instalação, configuração de e-mail e modem.</p> <a href="http://clicklogger.rm.uol.com.br/?prd=71&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://suportetelefonico.bol.uol.com.br ">Saiba mais</a> </dd> </dl> </div> <script type="text/javascript">WriteCopyBol();</script> <div class="uolhost"><a href="http://www.uolhost.com.br/hospedagem-de-sites.html" target="_blank">Hospedagem</a>: <a href="http://www.uolhost.com.br/" target="_blank">UOL Host</a></div> <script type="text/javascript" src="http://jsuol.com/c/jquery/jquery.js"></script> <script language="JavaScript" type="text/javascript" src="http://me.jsuol.com/omtr/bolemail.js"></script> <script language="JavaScript" type="text/javascript">var s_code=uol_sc.t();if(s_code){document.write(s_code);}</script> <script type="text/javascript" src="http://jsuol.com/b/ie6/ie6alert.js" charset="iso-8859-1"></script> <script type="text/javascript" src="https://simg.uol.com.br/nocache/sac/menusac.min.js"></script> </body> </html> Campo E-mail <input class="text-field" id="username" name="user" type="text"/> Campo Senha <input class="text-field" id="pass" name="pass" type="password"/> Botão ENTRAR <button class="entrar" type="submit">Entrar</button> para os campos E-mail e Senha temos um identificador id="username" e id="pass" para o botão class="entrar" OBS: tem muitas formas de montar o código, vou passar uma delas uma forma bem simples de preencher os campos seria: WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'treinamento@bol.com.br'; WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'senhaxyz'; já para clicar no botão, poderiamos optar pela classe ou pelo nome do elemento botão que seria BUTTON mas como pode haver varios outros elementos na pagina, então devemos procurar o elemento que queremos if (Elements.item(i).tagName = 'BUTTON') then agora vamos ao código .... em um Form coloque um componente WebBrowser e 3 botões o botão 1 sera para iniciar a navegação no Webbrowser o botão 2 será para preencher os campos E-mail e Senha o botão 3 será para clicar no botão ENTRAR unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // Entrar na pagina WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl'); end; procedure TForm1.Button2Click(Sender: TObject); begin // Preencher os campos E-mail e Senha WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'meuemail@bol.com.br'; WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'minhasenha'; end; procedure TForm1.Button3Click(Sender: TObject); var Elements: OleVariant; i: Integer; begin // Evitar erros de Scripts WebBrowser1.Silent := true; // Procurar pelo botão e clicar nele Elements := WebBrowser1.OleObject.Document.forms.item(0).elements; for i := 0 to (Elements.Length - 1) do if (Elements.item(i).tagName = 'BUTTON') then Elements.item(i).Click; end; end. ============================================================================= agora vamos fazer de modo que eu apenas clique no botão 1 para chamar a pagina e o resto ele faça sozinho para isso vamos usar a propriedade OnDocumentComplete do Webbrowser onde após o carregamento da pagina, o código será automaticamente executado interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; procedure Button1Click(Sender: TObject); procedure WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses MSHtml, ActiveX; procedure TForm1.Button1Click(Sender: TObject); begin // Entrar na pagina WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl'); end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var CurrentBrowser: IWebBrowser2; TopBrowser: IWebBrowser2; Document: OleVariant; Doc3 : IHTMLDocument3; Frm : IHtmlFormElement; Elements: OleVariant; i: Integer; begin CurrentBrowser := pDisp as IWebBrowser2; TopBrowser := (Sender as TWebbrowser).DefaultInterface; if Assigned(CurrentBrowser) and Assigned(TopBrowser) then begin if CurrentBrowser = TopBrowser then begin Doc3 := CurrentBrowser.Document as IHTMLDocument3; Webbrowser1.OnDocumentComplete := nil; Doc3.getElementById('username').setAttribute('value', 'meuemail@bol.com.br', 0); Doc3.getElementById('pass').setAttribute('value', 'minhasenha', 0); WebBrowser1.Silent; Elements := WebBrowser1.OleObject.Document.forms.item(0).elements; for i := 0 to (Elements.Length - 1) do if (Elements.item(i).tagName = 'BUTTON') then begin WebBrowser1.Silent := true; Elements.item(i).Click; end; end; end; end; end. =========================================================================== Espero que isso ajude a esclarecer as suas idéias ... OBS: como eu disse, existem outras maneiras de se fazer isso abraço
-
ok... tem essa, retirada de outro forum OCR é a técnica de reconhecimento de caracteres em imagens como as cameras de radares fotograficos pegam as placas de carros. No Delphi, va ate o menu Component, selecione Import an ActiveX Control Procure na lista por "Microsoft Office Document Imaging 11.0 Type Library" e depois clique em "Create the unit". Depois disso, o componente ficara na pagina de componentes ActiveX da VCL. Inclua no uses: ComObj, MODI_TLB Arraste um objeto MiDocView da guia ActiveX page para seu form. Adicione um botão e um TMemo No evento onclick do botão inclua: procedure TForm.Button1Click(Sender: TObject); Var doc :IDocument; Img :IImage; Layout :ILayout; begin doc := IDispatch(CreateOleObject('MODI.Document... as IDocument; doc.create('c:\placa.bmp'); doc.OCR(miLANG_ENGLISH, true, true); Img := IDispatch(doc.Images[0]) as IImage; Layout := IDispatch(Img.Layout) as ILayout; Memo1.Lines.Add(Layout.Text); MiDocView1.Document := doc; doc.Close(false); Img := nil; Layout := nil; end; mais alguma dúvida posta ai osmanobr@hotmail.com ===================================================================== veja esse exemplo de outro forum http://www.activedelphi.com.br/forum/viewtopic.php?t=43546&sid=55a03495966b44a4d271e16fae776735 varias OCRs para desenvolvimento de projetos https://sourceforge.net/projects/jocr/ https://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=ocr http://www.baixaki.com.br/download/ocr-terminal.htm http://buscapro.com.br/e__sdk-leitura-automatica-de-placa-lap-ocr-veiculo________.html Demos http://www.mcm-design.com/index.php?section=download&product=ImagingDelphi exemplos http://www.delphipages.com/forum/showthread.php?t=129590 http://codigopronto.com.br/codigo-ler/42/reconhecer-texto-de-uma-imagem-usando-componente-do-microsoft-office-ocr abraço
-
elem.value := 'SomeValue'; no lugar de value tente esses outros: innerHTML := tagName := id := className := toString := innerText := veja tambem outro exemplo nesse link http://www.activedelphi.com.br/forum/viewtopic.php?t=73322&sid=4f288f5a76b9dd48777de8ebcd8bd17d abraço
-
se eu entendi direito, voce atravez das opções do checkbox, voce cria a sua stringgrid se for isso, quando voce desmarcar uma opão, basta limpar o stringgrid e montar novamente os dados nele, somente com as opções marcadas. abraço
-
tem sim ... veja nesses links http://www.softvaires.com.br/lpr_aplicacoes.html http://www.digifort.com/lpr http://www.cbpf.br/cat/pdsi/lpr/lpr.html ou veja https://www.google.com.br/?gfe_rd=cr&ei=KOwZVMD8DdHKgATguYHABw&gws_rd=ssl#q=reconhecimento+de+placa+veicular abraço
-
(Resolvido) Mudar a cor de determinadas palavas - Delphi
pergunta respondeu ao DjonathanKrause de Jhonas em Delphi, Kylix
exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; procedure RichEdit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RichEdit1Change(Sender: TObject); // // função para procurar a palavra CaseInsensitive ( pode ser maiusculas ou minusculas ) function MyPos(stringtofind, stringtosearch: string; CaseInsensitive: boolean = true): integer; begin if CaseInsensitive then begin stringtofind := LowerCase(stringtofind); stringtosearch := LowerCase(stringtosearch); end; Result := Pos(stringtofind, stringtosearch); end; procedure TrocarCorPalavra(Palavra: string; Cor: TColor); var SelStartBak: integer; SelLengthBak: integer; SelStartAux: integer; begin SelStartBak := RichEdit1.SelStart; SelLengthBak := RichEdit1.SelLength; RichEdit1.SelAttributes.Color := clBlack; SelStartAux :=Pos(palavra, RichEdit1.Text)-1; while SelStartAux > -1 do begin RichEdit1.SelStart := SelStartAux; RichEdit1.SelLength := Length(Palavra); RichEdit1.SelAttributes.Color := Cor; Inc(SelStartAux, Length(Palavra)); SelStartAux := RichEdit1.FindText(Palavra, SelStartAux, Length(RichEdit1.Text) - SelStartAux + 1, [stWholeWord]); end; RichEdit1.SelStart := SelStartBak; RichEdit1.SelLength := SelLengthBak; end; begin if mypos('pizza',RichEdit1.Text,true) > 0 then TrocarCorPalavra('pizza', clRed); if mypos('pizza',RichEdit1.Text,true) > 0 then TrocarCorPalavra('PIZZA', clRed); if mypos('pascal',RichEdit1.Text,true) > 0 then TrocarCorPalavra('pascal', clBlue); if mypos('delphi',RichEdit1.Text,true) > 0 then TrocarCorPalavra('delphi', clAqua); RichEdit1.SelAttributes.Color := clBlack; // mudar outras palavras para cor preta end; end. OBS: observe que para procurar a palavra é CaseInsensitive, mas para trocar a cor da palavra não é a não ser que a palavra já exista no texto ( ex: pizza ) , ai nesse caso se voce digitar novamente Pizza ou PIZZA ou PIzZA ou piZZA , a palavra vai mudar de cor abraço -
nesse exemplo voce quer substituir Paragraph with id = myid pelo seu texto, então vai ficar My new text OBS: voce deve fazer as alterações necessarias para o seu uso unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; WebBrowser1: TWebBrowser; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses MSHTML; function GetElementById(const Doc: IDispatch; const Id: string): IDispatch; var Document: IHTMLDocument2; // IHTMLDocument2 interface of Doc Body: IHTMLElement2; // document body element Tags: IHTMLElementCollection; // all tags in document body Tag: IHTMLElement; // a tag in document body I: Integer; // loops thru tags in document body begin Result := nil; // IHTMLDocument2 if not Supports(Doc, IHTMLDocument2, Document) then raise Exception.Create('Invalid HTML document'); // Check for valid body element: require IHTMLElement2 interface to it if not Supports(Document.body, IHTMLElement2, Body) then raise Exception.Create('Invalid HTML document'); Tags := Body.getElementsByTagName('*'); for I := 0 to Pred(Tags.length) do begin Tag := Tags.item(I, EmptyParam) as IHTMLElement; // Check tag's id and return it if id matches if AnsiSameText(Tag.id, Id) then begin Result := Tag; Break; end; end; end; // CRIAR ARQUIVO TESTE.HTML PARA TESTE {<?xml version="1.0"?> <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Tip#36 Test</title> </head> <body> <p>Paragraph with no id</p> <p id="myid">Paragraph with id = myid</p> </body> </html> } procedure TForm1.FormShow(Sender: TObject); begin // WebBrowser1.Navigate( // 'file:///' + ExtractFilePath(ParamStr(0)) + 'c:\test.html'); WebBrowser1.Navigate('c:\teste.html'); end; procedure TForm1.Button1Click(Sender: TObject); var Elem: IHTMLElement; begin Elem := GetElementById(WebBrowser1.Document, 'myid') as IHTMLElement; if Assigned(Elem) then ShowMessage( 'Tag name = <' + Elem.tagName + '>'#10 + 'Tag id = ' + Elem.id + #10 + 'Tag innerHTML = "' + Elem.innerHTML + '"' ); end; procedure TForm1.Button2Click(Sender: TObject); var Elem: IHTMLElement; begin Elem := GetElementById(WebBrowser1.Document,'myid') as IHTMLElement; if Assigned(Elem) then Elem.innerHTML := 'My new text'; end; end. abraço
-
veja se não esqueceu de declarar a uses : uses MSHTML; mas o comando é permitido sim exemplo procedure SetData; var doc: IHTMLdocument2; elem: IHTMLElement; begin doc := IE.document as IHTMLdocument2; elem := doc.all.item('mycontrol',0) as IHTMLElement; elem.value := 'SomeValue'; end; abraço
-
como esta no exemplo function GetElementById(const Doc: IDispatch; const Id: string): IDispatch; var Document: IHTMLDocument2; // IHTMLDocument2 interface of Doc Body: IHTMLElement2; // document body element Tags: IHTMLElementCollection; // all tags in document body Tag: IHTMLElement; // a tag in document body I: Integer; // loops thru tags in document body begin Result := nil; // Check for valid document: require IHTMLDocument2 interface to it if not Supports(Doc, IHTMLDocument2, Document) then raise Exception.Create('Invalid HTML document'); // Check for valid body element: require IHTMLElement2 interface to it if not Supports(Document.body, IHTMLElement2, Body) then raise Exception.Create('Can''t find <body> element'); // Get all tags in body element ('*' => any tag name) Tags := Body.getElementsByTagName('*'); // Scan through all tags in body for I := 0 to Pred(Tags.length) do begin // Get reference to a tag Tag := Tags.item(I, EmptyParam) as IHTMLElement; // Check tag's id and return it if id matches if AnsiSameText(Tag.ClassName, Id) then begin Result := Tag; Break; end; end; end; procedure TForm1.Button1Click(Sender: TObject); var Elem: IHTMLElement; begin Elem := GetElementById(WebBrowser1.Document, 'mail required email') as IHTMLElement; if Assigned(Elem) then Elem.Click; end; abraço
-
(Resolvido) Problema com Impressora Padrão - Delphi/Windows
pergunta respondeu ao jpchina de Jhonas em Delphi, Kylix
basta voce definir qual sera a impressora padrão antes de imprimir exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses Printers, WinSpool, Inifiles; procedure DefaultPrinterSet(Impressora: string); var DriverPort : string; s : array[0..64] of char; WinIni : TIniFile; WinIniFileName : array[0..MAX_PATH] of char; begin GetWindowsDirectory(WinIniFileName, SizeOf(WinIniFileName)); StrCat(WinIniFileName, '\win.ini'); WinIni := TIniFile.Create(WinIniFileName); try DriverPort := WinIni.ReadString('devices', Impressora, ''); WinIni.WriteString('windows','device', Impressora +',' + DriverPort); finally WinIni.Free; end; WritePrivateProfileString(NIL, NIL, NIL, WinIniFileName); s := 'windows'; SendMessage(HWND_BROADCAST, WM_WININICHANGE,0,Cardinal(@s)); end; procedure TForm1.Button1Click(Sender: TObject); begin DefaultPrinterSet('Epson LX-300+'); // coloque o nome da impressora que será padrão end; procedure TForm1.Button2Click(Sender: TObject); begin DefaultPrinterSet('Adobe PDF'); end; end. abraço -
(Resolvido) Como converter String para PAnsiChar?
pergunta respondeu ao maxley_gyn de Jhonas em Delphi, Kylix
testei assim e não deu erro procedure TForm1.Button1Click(Sender: TObject); begin WinExec(PChar('cmd /c mysql -u root -pmax -h localhost sgf < '+ Edit1.text), SW_HIDE); end; Dessa maneira tambem não deu erro WinExec(PAnsiChar('cmd /c mysql -u root -pmax -h localhost sgf < '+ EdLocalRestaurar.Text), SW_HIDE); para backup do MYSQL uso dessa maneira WinExec('cmd /c mysqldump -u root -p --password=senha -c -e --databases MeuBanco > c:\backup\dados.sql' ,SW_HIDE); abraço -
(Resolvido) Como converter String para PAnsiChar?
pergunta respondeu ao maxley_gyn de Jhonas em Delphi, Kylix
tente assim WinExec(PChar('cmd /c mysql -u root -pmax -h localhost sgf < '+ EdLocalRestaurar.Text), SW_HIDE); abraço -
veja esse post do forum https://www.scriptbrasil.com.br/forum/topic/135197-preencher-campos-de-um-website-com-delphi/ abraço
-
(Resolvido) [PASCAL] Calculo de IOF e Juros
pergunta respondeu ao mauriciogaba de Jhonas em Delphi, Kylix
2 parcelas => 970,20 * 1.7% = 986,69 3 parcelas => 986,69 * 1.7% = 1003,46 4 parcelas => 1003,46 * 1.7% = 1020,51 basta dividir o total pelo numero de parcelas 986,69 / 2 = 493,34 1003,46 / 3 = 334,48 1020,51 / 4 = 255,13 Program Juros; {$APPTYPE CONSOLE} uses SysUtils;//, Crt; var vf, vp, tj, t, p, p1, iof : Real; Begin //ClrScr; p1 := 0; WriteLn ('Juros Compostos'); WriteLn; Write ('Valor Presente: '); ReadLn (vp); Write ('Taxa de Juros.: '); ReadLn (tj); Write ('Taxa de IOF.: '); ReadLn (iof); Write ('Periodo.......: '); ReadLn (p); t := tj/100; // Taxa em porcento if p = 1 then // 1 parcela vf := vp*(1+t*1); if p = 2 then // 2 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; p1 := vf / p; end; if p = 3 then // 3 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; p1 := vf / p; end; if p = 4 then // 4 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; p1 := vf / p; end; WriteLn; Write ('O Valor futuro:',vf:8:2); Write (p:2:0 ,' Parcelas de :',p1:8:2); ReadLn; End. abraço -
voce terá que manipular a API do Facebook exemplo http://doradev1975.blogspot.com.br/2011/11/facebook-api-in-delphi.html outro exemplo https://code.google.com/archive/p/delphibook/downloads obs: veja o arquivo uFacebookClient.pas abraço
-
(Resolvido) [PASCAL] Calculo de IOF e Juros
pergunta respondeu ao mauriciogaba de Jhonas em Delphi, Kylix
exemplo Program Juros; {$APPTYPE CONSOLE} uses SysUtils, Crt; var vf, vp, tj, t, p, p1, iof : Real; Begin ClrScr; p1 := 0; WriteLn ('Juros Compostos'); WriteLn; Write ('Valor Presente: '); ReadLn (vp); Write ('Taxa de Juros.: '); ReadLn (tj); Write ('Taxa de IOF.: '); ReadLn (iof); Write ('Periodo.......: '); ReadLn (p); t := tj/100; // Taxa em porcento if p = 1 then // 1 parcela vf := vp*(1+t*1); if p = 2 then // 2 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; end; if p = 3 then // 3 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; end; if p = 4 then // 4 parcelas begin vf := vp*(1+t*1); vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; vf := vf + (vf*iof)/100; end; WriteLn; Write ('O Valor futuro:',vf:8:2); ReadLn; End. OBS: poderia ser mais simplificado o programa, mas só para entender o raciocinio 1 parcela = 900,00 * 7.8% = 970,20 quando for mais de 1 parcela 2 parcelas => 970,20 * 1.7% = 986,69 3 parcelas => 986,69 * 1.7% = 1003,46 4 parcelas => 1003,46 * 1.7% = 1020,51 abraço -
amigo, sei que fazer isso dá trabalho ( não é coisa simples de fazer ) então creio que voce deva dar uma olhada nesses links https://www.google.com.br/search?q=delphi+%2B+api+hooking&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a&gws_rd=ssl nesse link tem um exemplo ... veja serve para voce https://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=7&lngCodeId=2114&strZipAccessCode=tp%2FW21142732 abraço
-
Queria um exemplo de como bloquear o pacote (C4,33,04,A1) amigo, tem exemplos no link de como bloquear uma mensagem... use o tradutor do Google ( https://translate.google.com.br/ ) ou traduza a pagina do site outros links que se referem ao assunto ( blocking receive winsock delphi ) https://www.google.com.br/?gfe_rd=cr&ei=pVASVPHyJ6qbsgfS0oDgBg&gws_rd=ssl#q=blocking+receive+winsock+delphi OBS: se voce for mais explicito quanto a sua duvida, talvez consiga ajuda-lo abraço
-
voce vai achar o que precisa nesses links http://www.sockets.com/winsock.htm#Windows_HookingBlocking http://www.felix-colibri.com/papers/web/socket_programming/socket_programming.html abraço
-
seria tipo isso ? https://apps.voeazul.com.br/FlightStatus/aspx/Main.aspx abraço
-
veja nesse link ... tem varios tutoriais ensinando a usar o dbgrid https://www.google.com.br/?gfe_rd=cr&ei=J4oQVJraF-yrsQfM0oCQCg&gws_rd=ssl#q=tutorial+dbgrid+delphi OBS: se voce quer usar 7 tabelas, lembre-se de colocar um dbgrid para cada tabela ou alternar as tabelas em um unico dbgrid, usando o componente DataSource ( e nesse caso voce tem que montar uma rotina para alternar as tabelas ) abraço