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 25-02-2010
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Duda Sobre Excepciones - Propagar Excepciones entre los formularios

Hola a todos....

Tengo algo que no me esta saliendo como quiero ...

Tengo esta situación, en una aplicación MDI

Se inicia la aplicación, se crea el formulario principal.

En el OnCreate del Formulario Principal (FrmMDIMain), llama a otro formulario (FrmMDIChild)

Código Delphi [-]
  try
    Try
      FrmMDIChild := TFrmMDIChild.Create(Self);
      if FrmMDIChild.ShowModal = mrCancel then
        Raise Exception.Create('Usuario No Autorizado');
    except
      On E:Exception do
        begin
          Application.ShowException(E);
          Application.Terminate;
        end;
    end;
  finally
    FrmMDIChild.Close;
  end;

Ahora en el OnCreate de FrmMDIChild llamo a una funcion

Código Delphi [-]
  if Not (MyFuncion = True) then
    raise exception.Create('No se puede Conectar con la Base de Datos.' +
      #13 + #10 + 'La aplicación se Cerrará.');

Mi Pregunta es:

Porque el Try Except del FrmMDIMain... no captura la Excepción del FrmMDIChild.
Que es lo que hace?... Me muestra el mensaje de la Excepción

Código Delphi [-]
    raise exception.Create('No se puede Conectar con la Base de Datos.' +
      #13 + #10 + 'La aplicación se Cerrará.');

y despues se Ejecuta me muestra el FrmMDIChild, por lo tanto se ejecuta la linea:

Código Delphi [-]
    if FrmMDIChild.ShowModal = mrCancel then
        Raise Exception.Create('Usuario No Autorizado');

Ahora lo que necesito es saber como capturar, o generar una excepción... que le avise al try except del FrmMDIMain que se produjo un error en la creación del FrmMDIChild y que debe saltar por el except.

Espero se entienda.

Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :)

Última edición por Neeruu fecha: 25-02-2010 a las 19:13:03.
Responder Con Cita
  #2  
Antiguo 26-02-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
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
¿Porqué no subes el proyecto de ejemplo, que le echemos un vistazo?
Así será más fácil.
__________________
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
  #3  
Antiguo 26-02-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Me parece que sale sobrando la excepción, pues bien podrías hacer:
Código Delphi [-]

 FrmMDIChild := TFrmMDIChild.Create(Self);
 try
      if FrmMDIChild.ShowModal = mrCancel then
      Begin
          ShowMessage('Usuario no Autorizado');
          Application.Terminate;
       end;
  finally
    FrmMDIChild.Close;
  end;

Recuerda que las excepciones no se deben utilizar para mandar mensajes o controlar flujo del programa, te recomiendo le eches una hojeada al capítulo de excepciones del libro "La cara oculta de Delphi" de Ian Marteens, que aunque es para versiones antiguas de delphi sirven bastante para entender esto de las excepciones.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Duda sobre posibles excepciones en una desconexión de un socket noob Varios 0 13-02-2009 19:33:14
Duda con Excepciones pelaorb68 Conexión con bases de datos 2 19-05-2006 21:31:17
Excepciones Acker Tablas planas 6 06-08-2005 15:22:18
excepciones!!!!! hanna33 OOP 3 24-05-2005 17:10:10
Excepciones del bde Pablo Carlos Conexión con bases de datos 3 15-04-2005 17:57:46


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


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