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
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;