Ver Mensaje Individual
  #1  
Antiguo 09-10-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 193
Reputación: 14
elcharlie Va por buen camino
SubFormulario de un procedure

Buenos dias a Todos:
Estoy haciendo una aplicación la cual, tiene que comunicarse por protocolo tcp/ip. Este programa tiene uno formulario modal de parametros, en el cual se mete la ip del servidor, los datos necesarios, y un boton test para probar la conexion.
Ese boton test llama a una funcion que comprueba si el servidor esta activo, y me gustaria que se mostrara un formulario con la tipica progress bar con el stilo pbstMarquee, indicando que esta intentando realizar la conexion.
este es el codigo del boton test:
Código Delphi [-]
procedure TFormConfiguracion.ButtonTestClienteClick(Sender: TObject);
begin
  if TestTCPClient(EdIPCliente.Text, EdPasswordProtocolo.Text, EdPuertoCliente.Value, self) then
   begin    
    MensajeInformacion('Conexión con el Servidor Establecida con Exito!','');
  end
  else
  begin    
    MensajeError('Error al Conectar con el Servidor!','');
  end;
end;

el codigo de la funcion TestTCP:
Código Delphi [-]
function TestTCPClient(Host,Password: String; Puerto: Integer; AOwner: TComponent): Boolean;
var
  TCPCliente: TIdTCPClient;
  textoEnvio: String;
begin
  TCPCliente := TIdTCPClient.Create(nil);
  Result := False;
  TCPCliente.Host := Host;
  TCPCliente.Port := Puerto;
  TCPCliente.ConnectTimeout := 20000;
  textoEnvio := Trim(Password)+'|TEST|#';
  try
    ShowFormCompConexion(AOwner, 'Intentando establecer conexión con el equipo '+Host+'...');
    TCPCliente.Connect;
    TCPCliente.Socket.ReadTimeout := 10000;
    TCPCliente.Socket.WriteLn(textoEnvio, TEncoding.ANSI);
    if (TCPCliente.Socket.ReadLn(TEncoding.ANSI) = 'OK#') then
      Result := True;
    CloseFormCompConexion;
  except
    on E : Exception do
    begin
      CloseFormCompConexion;
      Exit;
    end;

  end;
end;
y el codigo de la funcion que muestra el formulario con la barra de progreso:
Código Delphi [-]
procedure ShowFormCompConexion(AOwner: TComponent; Dato: String);
var
  WindowList: TTaskWindowList;
  LSaveFocusState: TFocusState;
  SaveCursor: TCursor;
  SaveCount: Integer;
  ActiveWindow: HWnd;
begin
 Form_CompConexion := TFormCompConexion.Create(AOwner);
 Form_CompConexion.LbDato.Caption := Dato;
 Form_CompConexion.Show;
 Form_CompConexion.Repaint;
end;

El problema es que este formulario se queda como inactivo, me explico no se mueve la barra de progreso, es como si el esperara a que acabara el proceso. He probado a meter un gif, y nada, un edit y no me deja editarlo....
Alguien me puede ayudar??
Responder Con Cita