Ver Mensaje Individual
  #10  
Antiguo 23-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
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