Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-01-2009
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Leer value de input HTML WebBrowser

Buenas al foro.

Estoy trabajando con Delphi 7 y utilizando el componente WebBrowser de la pestaña Internet.

En este estoy cargando una pagina web, que leo de un url especifico.

Existe forma que desde Delphi pueda leer el valor de un determinado elemento de dicha pagina?

Por ejemplo, en dicha pagina hay 12 intput y eston tienen sus value y deseo solo jalar los dos ultimos values del conjunto de inputs

Your friend

StartKill
Lima-Perú
Responder Con Cita
  #2  
Antiguo 19-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para acceder a los distintos elementos de la página, debes acceder al DOM (document object model), y el punto de entrada a éste es la propiedad WebBrowser.Document.

Esta propiedad es una interfaz que tienes que moldear de acuerdo a lo que requieras. Por ejemplo, la interfaz IHTMLDocument3 contiene el método getElementsByName que te devuelve la lista de todos los elementos que lleven un nombre dado. Si sólo hay un elemento con ese nombre, la lista contendrá un sólo elemento (el de índice 0).

Tal elemento debes averiguar si es del tipo deseado, lo cual logras preguntando a la interfaz si soporta la interfaz deseada, por ejemplo la de IHTMLInputElement. De ser así, podrias verificar si es del tipo adecuado (TEXT) y entonces tomar su propead value.

Te dejo un ejemplo, que carga la página de búsqueda avanzada de Google y lee el valor del campo Dominio que se llama as_sitesearch:

Código Delphi [-]
uses MSHTML;

procedure TForm1.WebBrowser1DocumentComplete(
  Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
  Document: IHTMLDocument3;
  Collection: IHTMLElementCollection;
  Element: IHTMLElement;
  InputElement: IHTMLInputElement;

begin
  Document := (WebBrowser1.Document as IHTMLDocument3);
  Collection := Document.getElementsByName('as_sitesearch');

  if (Collection.length >= 0) then
  begin
    Element := Collection.item(0, 0) as IHTMLElement;
    Element.QueryInterface(IHTMLInputElement, InputElement);

    if Assigned(InputElement) and (InputElement.type_ = 'text') then
      ShowMessage(InputElement.value);
  end;
end;

Si te fijas, el código está en el evento OnDocumentComplete, para asegurarte que ya está descargado todo el documento al momento de buscar el elemento.

// Saludos
Responder Con Cita
  #3  
Antiguo 20-01-2009
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigo roman el codigo funciona pero como saber cual es el nombre del valor de un campo
Responder Con Cita
  #4  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, se supone en este código, que uno sabe de antemano qué pagina vas a descargar. Entonces, bastaría que examines el código html de la página en cuestión para ver como están nombrados los campos. Si usas FireFox, tienes la extensión Web Developer que te permite saber de manera muy fácil, qué formularios y qué campos hay en una página dada.

// Saludos
Responder Con Cita
  #5  
Antiguo 20-01-2009
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
ok muchas gracias
Responder Con Cita
  #6  
Antiguo 20-01-2009
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Amigo "roman", muchas gracias, me sirvió de mucho el codigo.

Your friend

Startkill
Lima-Perú
Responder Con Cita
  #7  
Antiguo 24-01-2009
madiazg madiazg is offline
Miembro
 
Registrado: sep 2005
Ubicación: Canarias
Posts: 120
Poder: 19
madiazg Va por buen camino
Hola,
gracias por la información. Con este código puedo obtener los datos contenidos en un campo tipo formulario.
EL problema que planteo es como consecuencia de obtener las coordenadas de la siguiente página:

guiarte.com

Si observan el código fuente de la página, la latitud y la longitud viene recogidos en las 'variables' point.lat() y point.Lng()

¿Cómo podría obtener en mi programa delphi dichos valores?

Saludos...
Miguel Angel
Imagen3D
Responder Con Cita
  #8  
Antiguo 05-03-2010
jucabb jucabb is offline
Miembro
 
Registrado: ene 2010
Posts: 10
Poder: 0
jucabb Va por buen camino
Estoy tratando de hacer esto en tiempo real o loop para ver como varian los valores cada minuto, sin tener que presionar un boton para ver las lecturas de variables. Sin embargo, siempre me lee lo mismo.
Por favor, alguna sugerencia?
Gracias,
Juan C.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cual es la diferencia entre un input box y un input query? j_flores3000 OOP 3 17-09-2015 06:17:34
Invocar html y leer resultado acertij022 Internet 2 24-06-2008 18:55:56
leer archivos HTML jmlifi Internet 15 07-09-2005 00:19:50
Leer archivos HTML JulioGO Varios 4 20-09-2004 22:38:14
imprimir html con webbrowser victork_py Internet 2 08-08-2003 18:14:40


La franja horaria es GMT +2. Ahora son las 13:47:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi