Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Seoane te lo preguntaba porque en el código que has puesto más arriba:

Código Delphi [-]
procedure TFrmPrincipal.BEnviarClick(Sender: TObject);
var
  http: TIdHttp;
  params: TStrings;
  respuesta: string;
begin
  http := TIdHTTP.Create(Self);
  params := TStringList.Create;
  try
    params.Add('titulo='+ETitulo.Text);
    params.Add('autor='+EAutor.Text);
    params.Add('noticia='+MNoticia.Text);
    respuesta := http.Post('http://tekkenbolivia.net/archivos/php/noticias/envia_noticias.php', params);
    ShowMessage('Respuesta: ' + respuesta);
  finally
    http.Free;
    params.Free;
  end;
end;

... estás creando el objeto "http" pero no estás asignándole luego a los eventos oportunos los métodos que se han de hacer cargo de los mismos...

Es decir, fijo que tú tienes un componente "IdHttp" en el formulario, para el cual preparas los eventos (ayudándote del Inspector de Objetos de Delphi), pero, a la hora de la verdad (al menos en el código que muestras) usas otro objeto ("http") y no el que se crea porque lo añadiste al formulario en tiempo de diseño... ¿se comprende la idea?

Si fuera esto tienes dos opciones: o bien utilizar el objeto "IdHttp" que añades en tiempo de diseño al formulario (y para el que preparas los eventos correspondientes), o bien al componente que creas tú mismo en tiempo de ejecución le asignas los métodos correspondientes a los eventos que quieres utilizar. Algo así:

Código Delphi [-]
procedure TFrmPrincipal.BEnviarClick(Sender: TObject);
var
  http: TIdHttp;
  params: TStrings;
  respuesta: string;
begin
  http := TIdHTTP.Create(Self);
  params := TStringList.Create;
  try
   { Aquí puede estar la madre del cordero }
    http.OnWork := MetodoParaWork;
    http.OnWorkEnd := MetodoParaWorkEnd;
    http.OnWorkBegin := MetodoParaWorkBegin;

    params.Add('titulo='+ETitulo.Text);
    params.Add('autor='+EAutor.Text);
    params.Add('noticia='+MNoticia.Text);
    respuesta := http.Post('http://tekkenbolivia.net/archivos/php/noticias/envia_noticias.php', params);
    ShowMessage('Respuesta: ' + respuesta);
  finally
    http.Free;
    params.Free;
  end;
end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 23-04-2007 a las 21:51:08.
Responder Con Cita
  #2  
Antiguo 23-04-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola, bueno creo que he respondido antes de que se actualice la página, por eso sale mi respuesta arriba de la de usted Dec
Bueno, ahora siguiendo con el tema, lo que no entiendo es esta parte

Código Delphi [-]
   { Aquí puede estar la madre del cordero }
    http.OnWork := MetodoParaWork;
    http.OnWorkEnd := MetodoParaWorkEnd;
    http.OnWorkBegin := MetodoParaWorkBegin;

Bueno esa frase no la entendí bién, sobre la madre del cordero, supongo que significa algo como " aquí puede estar el problema "
Ahora con lo otro no se que quisiste decir con
MetodoParaWork;

Entiendo que hayas querido decir : hey tu, aquí pones el método
para el evento Work pero.. que método pongo ahí ?

Osea que tendría que quitar los eventos que había asignado en
los eventos del componente idHTTP ??
Creo que tendré que pegar mo código para que vean lo que estoy
es una busqueda en gogle con un rango nada mas.. por eso se
quiero que muestre un progressbar mientras realiza la búsqueda,


saludos Dec, Seoane
Responder Con Cita
  #3  
Antiguo 23-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. "La madre del cordero" quiere decir lo que imaginabas: que ahí podía estar el "problema". Y entrecomillo problema, porque, si se trata de lo que últimamente estamos comentando no es un problema, sino que no se asignan métodos para ningún evento y así estos ni llegan a "dispararse" siquiera.

A ver. Si en tu aplicación estás usando un componente "IdHttp" que has añadido previamente a un formulario, y utilizas los eventos de este componente, lo que tienes que hacer es utilizar dicho componente para realizar la tarea.

En el código que muestras más arriba haces uso de un componente "IdHttp", pero lo creas tú en tiempo de ejecución:

Código Delphi [-]
http := TIdHTTP.Create(Self);

Ahora bien, ¿dónde asignas los métodos oportunos para los eventos que necesitas usar en el componente? En ningún lado... así que los eventos no se dispararán nunca en la vida.

Si añadiste un componente "IdHttp" al formulario y este se llama "IdHttp1", por ejemplo, lo que tienes que hacer es utilizar este componente y no crear otro... ¿para qué vas a crear un componente "IdHttp" si ya añadiste uno al formulario? No es lo habitual... o una cosa u otra, pero no ambas.

Ahora supongamos que el componente "IdHttp" que añadiste al formulario se llama "IdHttp1". Entonces podrías cambiar tu código de este modo:

Código Delphi [-]
procedure TFrmPrincipal.BEnviarClick(Sender: TObject);
var
  params: TStrings;
  respuesta: string;
begin
  params := TStringList.Create;
  try
    params.Add('titulo='+ETitulo.Text);
    params.Add('autor='+EAutor.Text);
    params.Add('noticia='+MNoticia.Text);
    respuesta := IdHttp1.Post('http://tekkenbolivia.net/archivos/php/noticias/envia_noticias.php', params);
    ShowMessage('Respuesta: ' + respuesta);
  finally
    params.Free;
  end;
end;

¿Se coge la idea?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 23-04-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
ohhhh!!!
Bueno que tonto he sido al hacer eso, ahora ya me han quedado las cosas super claras, tienes razón Dec ahí estoy creando el mismo componte y el otro no me serviría para nada... por eso nunca se movian los progressbar, ahora si por lo menos ya se mueven Pero estan medio locos, por que suben y bajan, por ej llega a 10 % baja a 0, luego sube a 30 % y baja.. luego así se la pasa hasta que termina de realizar las peticiones/recepciones de datos pero claro.. ahora se que pueda ser por el bucle que estoy usando, por el momento tengo que salir un rato, mas tarde regreso y continuaré leyendo sobre el tema que me gusta mucho como trabaja delphi+internet creo que es cosa de aprender nada mas.. y yo lo veía complicado
aquí les dejo mi código que estoy usando para las búsquedas.

Código Delphi [-]
procedure TForm1.SBBuscarClick(Sender: TObject);
var
  params: TStrings;
  respuesta: string;
  I : Integer;
begin
  params := TStringList.Create;
  try

  I := 0;
  while (I <= Final) do
  begin
    I := I + 10;
    respuesta := IdHTTP.Get('http://www.google.com.bo/search?hl=es&q='+EPalabra.Text+'&hl=es&start='+IntToStr(I)+'&sa=N');
    MHtml.Text := MHtml.Text + respuesta;

  end;
  finally
    IdHTTP.Free;
    params.Free;
  end;
end;

final es una variable tambien.

y tengo en los eventos de mi componente idHTTP lo mismo que tenía antes, no he tocado nada, osea está en mis ateriores post

saludos Dec
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
Ajax.class.js - Sencilla forma de hacer peticiones HTTP en segundo plano dec PHP 10 11-01-2007 03:50:49
Librería para hacer peticiones HTTP para delphi 5 rlago Internet 3 06-11-2006 10:28:18
mandar un post http con idHTTP hidal C++ Builder 6 16-08-2006 01:02:57
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
Como hacer petición HTTP Bauhaus1975 Varios 2 13-06-2005 21:12:38


La franja horaria es GMT +2. Ahora son las 08:08:45.


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