Logré hacer que me agarre los procedure con cosas que encontré por internet.
El programa corre, pero ahora el problema es que no me pasa por NavegadorDocComplete que es donde tendría que hacer la "magia" el programa.
Les dejo el código de la unit.
Código Delphi
[-]unit GoogleTranslatorTool;
interface
uses
StdCtrls,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, forms,strutils,IdURI, OleCtrls, SHDocVw,MSHTML;
Type TWB = class
public
class procedure NavegadorDocComplete(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant);
class procedure NavegadorNavComplete2(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant);
class procedure NavegadorProgChange(ASender: TObject; Progress, ProgressMax: Integer);
end;
procedure ObtenerTraduccion(LangIn,LangOut,SourceText : String; Navegador : TWebBrowser);
Var
WB : TWB;
el,el1: IHTMLElement;
inputElement: IHTMLInputElement;
LangSource,LangTarget,TextoInicial,TextoFinal : String;
CurDispatch: IDispatch;
Navegador : TWebBrowser;
CONST URL : string= ('https://translate.google.com.ar/?hl=es#');
implementation
uses gltrans;
class procedure TWB.NavegadorDocComplete(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant);
begin
application.ProcessMessages;
if (pDisp = CurDispatch) then
begin
CurDispatch := nil;
el1 := (navegador.Document as IHTMLDocument3).getElementById('gt-swap');
el := (navegador.Document as IHTMLDocument3).getElementById('source');
if (Assigned(el)) AND (Assigned(el1)) then
begin
TextoFinal := el.outerText;
end;
end;
end;
class procedure TWB.NavegadorNavComplete2(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant);
begin
application.ProcessMessages;
if CurDispatch = nil then
CurDispatch := pDisp;
end;
class procedure TWB.NavegadorProgChange(ASender: TObject; Progress, ProgressMax: Integer);
begin
application.ProcessMessages;
if ProgressMax = 0 then
begin
if Assigned(el) then (el1.click);
end;
end;
procedure ObtenerTraduccion(LangIn,LangOut,SourceText : String; Navegador : TWebBrowser);
var
WebBrow : TWB;
Begin
WebBrow := TWB.Create;
Navegador.OnDocumentComplete := WebBrow.NavegadorDocComplete;
Navegador.OnNavigateComplete2 := WebBrow.NavegadorNavComplete2;
Navegador.OnProgressChange := WebBrow.NavegadorProgChange;
try
Navegador.Navigate(URL + LangIn + '/' + LangOut + '/' + SourceText);
finally
if assigned(Navegador) then FreeAndNil(Navegador)
end;
End;
end.