Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Necesito Determinar el Form de un Objeto (https://www.clubdelphi.com/foros/showthread.php?t=66653)

Efren2006 05-03-2010 04:09:54

Necesito Determinar el Form de un Objeto
 
Tengo un pequeño problema

Descubri que puedo controlar todas las excepciones de mi aplicacion, solo colocando el Compornente
Código Delphi [-]
TApplicationEvents
y programa el Evento OnExceptio: Ejemplo

Código Delphi [-]
procedure TMenuFortaleza.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
begin
 ErrorSistema(E,Name);
end;

El problema es que necesito enviar en esta funcion el Nombre del Formulario donde se origino la excepcion, en envia el Objeto donde se genero el error, ahora Teniendo en
Código:

SENDER
el objeto que genero el error se puede determinar el Form que lo contiene?

Neftali [Germán.Estévez] 05-03-2010 11:11:28

Cita:

Empezado por Efren2006 (Mensaje 355701)
El problema es que necesito enviar en esta funcion el Nombre del Formulario donde se origino la excepcion, en envia el Objeto donde se genero el error, ahora Teniendo en SENDER el objeto que genero el error se puede determinar el Form que lo contiene?

Puedes utilizar algo así:

Código Delphi [-]
  MessageDlg(Format('Mensaje: %s   (%s)',
             [E.Message, Sender.Classname]), mtInformation, [mbOK], 0);

Para estar seguro puedes comprobar el tipo:

Código Delphi [-]
  if (Sender is TFrom) then
    Nombre := TForm(Sender).Name;

Efren2006 05-03-2010 16:14:24

Cita:

Empezado por Neftali (Mensaje 355727)
Puedes utilizar algo así:

Código Delphi [-] MessageDlg(Format('Mensaje: %s (%s)', [E.Message, Sender.Classname]), mtInformation, [mbOK], 0);


Para estar seguro puedes comprobar el tipo:

Código Delphi [-] if (Sender is TFrom) then Nombre := TForm(Sender).Name;

Neftali

Gracias por tu tiempo..

Ya verifique que tipo de Objeto Envia y es el objeto donde se genero la excepcion, osea, en mi caso de Ejemplo fue que programe en el evento onExit de un TGroupbox el Post de una tabla y haciendo esto me dio la excepcion, entonces envio en el SENDER el Objeto TGroupbox.

Sabiendo esto como puedo determinar el FORM donde esta creado este objeto, ya que a futuro podria ser cualquier objeto... ?

Saludos

roman 05-03-2010 16:26:26

Puedes usar la función GetParentForm.

// Saludos

Efren2006 05-03-2010 23:45:41

Cita:

Empezado por roman (Mensaje 355750)
Puedes usar la función GetParentForm.

// Saludos

Roman

Efectivamente la solucion al problema.

Gracias


La franja horaria es GMT +2. Ahora son las 01:56:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi