Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2008
Avatar de razadi
razadi razadi is offline
Miembro
 
Registrado: feb 2004
Ubicación: Estado de México
Posts: 42
Poder: 0
razadi Va por buen camino
Post Problemas con clases bases

Hola a todos, bueno días, tengo un problema que no entiendo como resolverlo:

mi problema es el siguiente:

Tengo una clase base llamada frmMenuB esta es una forma que tiene encapsulado varios procedimientos y funciones que ocupo es MDIForm, tambien tengo otra clase base llamada frmCataBesta es MDIChild.

Creo una aplicación con instancias de estas dos clases bases y quedan de la siguiente manera:

frmMenuPrincipal que es inherited de frmMenuB
frmCatClientes que es inherited de frmCataB
frmCatVendores que es inherited de frmCataB
frmCatProveedores que es inherited de frmCataB

bueno para no hacer muy largo el cuento tengo el siguiente problema

1. como puedo hacer para saber que forma frmCatClientes,frmCatVendedores o frmCatProveedores esta activa en mi frmMenuPrincipal, si tengo abierta las tres, ya se que con ActiveMDIChild se cual esta activa de las MDIChilds pero en que evento lo cacho desde el menu principal?, lo estaba haciendo desde OnPaint pero no me resulta.

2. como hacer para que las acciones de frmCataB sean leidas desde frmMenuB para que yo las pueda tener en las instancias y no tenga que volver a escribir cada accion en las formas heredadas?

espero haber sido claro, espero sus comentarios.
Responder Con Cita
  #2  
Antiguo 13-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por razadi Ver Mensaje

2. como hacer para que las acciones de frmCataB sean leidas desde frmMenuB para que yo las pueda tener en las instancias y no tenga que volver a escribir cada accion en las formas heredadas?

espero haber sido claro, espero sus comentarios.
Si estas heredando estas acciones por defecto las toma la clase hija, sin necesidad que aparezcan en el editor de codigo. Por ejemplo si en la clase base programas algo en el formcreate en la clase hija deberia aparecer la palabra inherited cada vez que quieras usar ese evento, eso lo que te indica es en que posicion se ejecutara el codigo contenido en la clase base.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 13-11-2008
Avatar de razadi
razadi razadi is offline
Miembro
 
Registrado: feb 2004
Ubicación: Estado de México
Posts: 42
Poder: 0
razadi Va por buen camino
Cita:
Empezado por eduarcol Ver Mensaje
Si estas heredando estas acciones por defecto las toma la clase hija, sin necesidad que aparezcan en el editor de codigo. Por ejemplo si en la clase base programas algo en el formcreate en la clase hija deberia aparecer la palabra inherited cada vez que quieras usar ese evento, eso lo que te indica es en que posicion se ejecutara el codigo contenido en la clase base.
Te agradezco tu respuesta rápida eduarcol, pero no es eso lo que no puedo resolver, lo pongo de esta maner haber si me hago entender mejor:

en mi clase base frmCataB tengo una action llamada acActionCerrar, esta accion lo que hace es que cierra la forma con Self.close ok?.

En mi clase base frmMenuB tengo un boton que solo aparece cuando abro una forma descendiente de frmCataB, a este boton le quiero pegar la action, es decir frmMenuB.boton.action = frmCataB. acActionCerrar; si relaciono estas clases bases lo puedo hacer sin problemas, pero cuando hago instancias me marca error, por obvias razones. bueno quiero hacer esto en las clases bases porque no quiero repetir este codigo en todas mis formas descendientes de frmCataB.
Responder Con Cita
  #4  
Antiguo 13-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por razadi
por obvias razones
Pues no me parecen tan obvias.

En todo caso, ¿no puedes hacer la asignación por código al momento de crear el catálogo?

// Saludos
Responder Con Cita
  #5  
Antiguo 13-11-2008
Avatar de razadi
razadi razadi is offline
Miembro
 
Registrado: feb 2004
Ubicación: Estado de México
Posts: 42
Poder: 0
razadi Va por buen camino
Smile Solucuion alternativa

Cita:
Empezado por roman Ver Mensaje
Pues no me parecen tan obvias.

En todo caso, ¿no puedes hacer la asignación por código al momento de crear el catálogo?

// Saludos
Justamente eso es lo que no quiero hacer, porque tendría que estar haciendolo en cada forma y como son acciones estandar...

Econtre una forma de hacerlo aunque un poco rimbombante pero me funciono, lo que hice fue lo siguiente: extender la TForm a modo de agregar como propiedades en runtime las acciones que habran de ejecutarse y llamarlas desde la otra forma.

Código Delphi [-]
type
  TMiForm = class helper for TForm
  private
    procedure SetacFKCerrar(const Value: TAction);
    function GetacFKCerrar: TAction;
  published
    property acFKCerrar: TAction read GetacFKCerrar write SetacFKCerrar;
  end;

esto esta buenisimo, si alguien puede extender en esto pues sería fabuloso.

Saludos y gracias.
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
Problemas con la creacion de clases ivanloco Varios 2 07-06-2008 01:42:29
Problemas con la creacion de clases ivanloco OOP 0 06-06-2008 21:46:07
problemas con el acceso a la bases de datos inexperto MySQL 1 25-10-2004 21:40:34
problemas con clases y metodos rojito JAVA 1 03-10-2004 23:06:28
Problemas con MDI y Bases de datos NeWsP Varios 10 14-10-2003 22:17:48


La franja horaria es GMT +2. Ahora son las 12:51:47.


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