Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2014
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
No mostrar form segun condicion en el create

Hola amigos.
Quisiera que me comenten cual es la forma correcta de hacer lo siguiente:
Desde la pantalla principal de la aplicación creo un nuevo form, este en el formcreate checkea que se pueda conectar con un servicio especifico, si no lo logra no quiero que se muestra la pantalla y que se cierre.
Gracias.
Responder Con Cita
  #2  
Antiguo 24-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jars.

¿ Deseas verificar si se establece la conexión, o si el usuario tiene los permisos para establecerla ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 25-04-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jars Ver Mensaje
Desde la pantalla principal de la aplicación creo un nuevo form, este en el formcreate checkea que se pueda conectar con un servicio especifico, si no lo logra no quiero que se muestra la pantalla y que se cierre.
En el Oncreate del form ya has iniciado el proceso de creación.
Haz la comprobación desde tu pantalla principal antes de crear ese segundo form. Si no cumple las condiciones no lo crees.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 25-04-2014
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
Neftali, no puedo hacer la verificación antes de llamar al form.
Ecfisa, no importa lo que haga con la verificación, lo que quiero saber es como matar la creación del form, es decir que muestre el mensaje de error y no se muestre el form.
Gracias
Responder Con Cita
  #5  
Antiguo 25-04-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jars Ver Mensaje
Neftali, no puedo hacer la verificación antes de llamar al form.
No se el porqué, pero eso sería lo correcto.

Cita:
Empezado por jars Ver Mensaje
lo que quiero saber es como matar la creación del form, es decir que muestre el mensaje de error y no se muestre el form.
En ese caso deberías dejar que acabe de crearse (tal vez si lo tienes no visible no verás todo el proceso) y una vez que acabe de crearse, cerrarlo.
No puedes hacerlo directamente en los eventos OnCreate, onShow,... así que deberás usar algún mensaje tipo AFTERSHOW o el equivalente a AFTERCREATE.
De todas formas no creo que sea la mejor opción.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 25-04-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Hola.

Una pantalla no se muestra hasta que no haces el show (o showModal) excepto que sea MDIChild, así que siempre puedes decidir, entre el create y el show que es lo que quieres hacer.

Un saludo.
__________________
http://www.gestionportable.com
Responder Con Cita
  #7  
Antiguo 25-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jars.
Cita:
Empezado por jars Ver Mensaje
...
Ecfisa, no importa lo que haga con la verificación, lo que quiero saber es como matar la creación del form, es decir que muestre el mensaje de error y no se muestre el form.
...
¡ Pero claro que importa !, si no requiere la intervención de un usuario, no es necesario el uso de un formulario...

Si vas a usar un formulario, coincido con Neftali en que de ese modo no es la mejor opción, pero podrías hacer algo como esto.

Formulario de conexión:
Código Delphi [-]
...
const
  WM_AFTER_CREATE = WM_USER + 301;

type
  TfrmConnect = class(TForm)
    procedure FormCreate(Sender: TObject);
    //...
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    FModalResult: TModalResult;
    procedure WmAfterCreate(var Msg: TMessage); message WM_AFTER_CREATE;
  public
  end;

var
  frmConnect: TfrmConnect;

implementation


function IsServerConnect: Boolean;
begin
  { Aquí el código de tu funcion para conectar al servidor }

  Result:= Boolean(Random(2)); // (Sólo para el ejemplo)
end;

procedure TfrmConnect.WmAfterCreate(var Msg: TMessage);
begin
   if not IsServerConnect then
    FModalResult:= mrCancel
  else
    FModalResult:= mrOk;
  Close;
end;

procedure TfrmConnect.FormCreate(Sender: TObject);
begin
  //... Otras cosas que debas hacer 
  Randomize; // (Sólo para el ejemplo)

  PostMessage(Handle, WM_AFTER_CREATE, 0, 0);
end;

procedure TfrmConnect.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ModalResult:= FModalResult;
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TfrmMain.ButtonConnect(Sender: TObject);
var
  R: TModalResult;
begin
  with TfrmConnect.Create(nil) do
  try
    R:= ShowModal;
  finally
    Free;
  end;
  if R = mrCancel then
  begin
    MessageBox(0,'Conexión fallida','',MB_ICONERROR);
    Application.Terminate;
  end;
end;
Por supuesto que el formulario de conexión no debera figurar en la lista de auto creación.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 25-04-2014
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
Gracias a todos por las respuestas.
Lo voy a probar.
Responder Con Cita
Respuesta



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
quiero Agrupar según condición FastReport vicentnew Impresión 5 18-07-2012 01:41:07
mostrar una u otra form segun boton pulsado jsc Varios 2 12-08-2011 09:08:10
mostrar form segun boton pulsado jsc OOP 1 11-08-2011 12:37:22
Consulta que obtiene campos de una tabla u otra según condición Gabo SQL 10 20-08-2007 08:53:02
Cambiar de color una fila de un Dbgrid segun una condicion... hook Varios 5 12-07-2005 23:40:36


La franja horaria es GMT +2. Ahora son las 04:05:06.


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