Fórum recuperar valor de componente em TWebbrowser #348208
30/10/2007
0
caros colegas, tenho uma rotina em meu sistema onde o mesmo recupera valores de componentes de um arvio html previamente gerado em um TWebbrowser, por exemplo:
a rotina acima pegaria o valor do RadioButton checado em um TWebbrowser. essa rotina funciona bem quando o elemento ja tem a propriedade value preenchida / definida no arquivo html
porém me defrontei com o seguinte problema: preciso recuperar o valor de um input do tipo texto no qual a propriedade value será preenchida em tempo de execução, ou seja, no arquivo html o input estaria assim:
entao o usuário entraria com o valor no input (dentro do TWebbrowser) e eu recuperaria esse valor.
tentei algo do tipo:
porém nao obtive exito... alguem poderia me dar uma sugestão de como proceder?
abraços a todos e obrigado pela atenção!
var Doc: IHTMLDocument2; I: Integer; Element: OleVariant; Elements: IHTMLElementCollection; begin Doc := Wb.Document as IHTMLDocument2; Elements := Doc.All; for I := 0 to Elements.length - 1 do begin Element := Elements.item(I, varEmpty); if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´RADIO´) then begin if (Element.Checked = true) then begin ShowMessage(´RadioButton: ´ + Element.value); end; end; end; end;
a rotina acima pegaria o valor do RadioButton checado em um TWebbrowser. essa rotina funciona bem quando o elemento ja tem a propriedade value preenchida / definida no arquivo html
porém me defrontei com o seguinte problema: preciso recuperar o valor de um input do tipo texto no qual a propriedade value será preenchida em tempo de execução, ou seja, no arquivo html o input estaria assim:
<label><input type="TEXT" value="" name="txt" /></label>
entao o usuário entraria com o valor no input (dentro do TWebbrowser) e eu recuperaria esse valor.
tentei algo do tipo:
if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´TEXT´) then begin if (Element.value <> ´´) then begin ShowMessage(´edit: ´ + Element.value); end; end;
porém nao obtive exito... alguem poderia me dar uma sugestão de como proceder?
abraços a todos e obrigado pela atenção!
Mahdak
Curtir tópico
+ 0
Responder
Posts
31/10/2007
Bdexterholland
Eu nunca mexi com o IHTMLDocument2, não faço muita idéia de como trabalhar com ele, mas observando o código
Me fez pensar que o delphi por algum motivo, pode estar não encontrando o objeto realmente, tem como você verificar se o objeto existe ou fazer algo assim:
Só para saber se o delphi está encontrando ele...
if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´TEXT´) then begin if (Element.value <> ´´) then begin ShowMessage(´edit: ´ + Element.value); end; end;
Me fez pensar que o delphi por algum motivo, pode estar não encontrando o objeto realmente, tem como você verificar se o objeto existe ou fazer algo assim:
if (UpperCase(Element.name) = ´TXT´) then begin ShowMessage(´edit: ´ + Element.type); end;
Só para saber se o delphi está encontrando ele...
Responder
Gostei + 0
31/10/2007
Mahdak
brother, esqueci de postar a solução aqui... na verdade arotina que postei ali estava certa, o problema é que eu havia colocado ela no local errado, dae ela nao funcionava. só mudei ela de local e tudo funcionou como esperado. mesmo assim valeu pela atenção
um forte abraço!
um forte abraço!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)