Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Puede Una Clase Saber Quien La Instancio? Solucionado
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Puede Una Clase Saber Quien La Instancio? Solucionado 
 
Bueno aver si me puedo explicar...

En los componentes yo uso esta función para resolver el problema...


Esta clase esta instanciada dentro de la clase del componente, siguiendo con "mi estándar" trato de evitar la comunicación entre clases lo mas posible así que uso esto función para obtener acceso a la clase principal del componente, siendo me la clase instanciada dentro del componente.

Private Sub GetMe() As Grilla
  
  Return Object.Parent(Me)
  
End
 


pero ahora bien todo lindo pero cuando la clase no es un componente no me funciona me devuelve null...  Alguna idea algo se me escapo?
 




===================
No mames wey...
 
última edición por osunaosuna el Martes, 08 Julio 2014, 08:36; editado 1 vez 
osunaosuna - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
osunaosuna:

Citar:
Puede Una Clase Saber Quien La Instancio

Yo lo que haria es añadir un método a tus clases, para decirle manualmente mediante código, quien la esta instanciando, y que cuando se lo pidas te lo devuelva.

Public Sub setInstancia(lugar As Obj)
  
  $lugar = lugar
  
  
End

Public Sub getInstancia() As Obj
  
  Return $lugar
  
End



Citar:
para obtener acceso a la clase principal del componente

¿que entiendes como clase principal?


Citar:
siguiendo con "mi estándar" trato de evitar la comunicación entre clases lo mas posible

Eso no lo entiendo... las clases se comunican entre si enviandose mensajes (usando los métodos)
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
A ver, a ver.

Julio dices que las clases se comunican entre si enviándose mensajes (usando métodos ).
¿ En que lugar queda el evento ?. ¿ Es un mensaje ?.
¿ Qué es el mensaje y qué es la respuesta del objeto ?.

A ver si esto aclara este tema:

Citar:

Mensajes y métodos:

En la programación orientada a objetos, la acción se inicia mediante la trasmisión de un mensaje a un agente  (un objeto)
responsable de la acción. El mensaje tiene codificada la petición de una acción y se acompaña de cualquier información adicional (argumentos)
necesaria para llevar a cabo la petición. El receptor es el agente al cual se envía el mensaje. Si el receptor acepta el mensaje, acepta la responsabilidad
de llevar acabo la acción indicada. En respuesta a un mensaje, el receptor ejecutara algún método para satisfacer la petición.


¿ No fue un evento el mensaje ?. Lo cierto es que no veo la palabra evento por ninguna parte desde que he comenzado este libro.
Solo veo métodos y mensajes.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 06 Julio 2014, 13:26; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
jsbsan 

Citar:
Puede Una Clase Saber Quien La Instancio


Lo resolví pasando el parámetro al instanciar la clase...

Public Sub _new(oParent As Form)
  
  ........
  
End
 


Citar:
¿que entiendes como clase principal?


Desde  “MI vista” y debo aclarar es desde mi perspectiva, la clase principal es la que instancia . Yo estoy hablando mas precisamente de la estructura de mi software y/o manera de programar.


Citar:
Eso no lo entiendo... las clases se comunican entre si enviandose mensajes (usando los métodos)


Totalmente de acuerdo con eso pero yo siempre me propongo que sean lo menos posibles y que dichas clases sean lo mas independientes posibles.

Siempre maneje linux Debian y me quedo eso....  Pequeños programas que resuelven una tarea especifica y juntos resuelven tareas mas complejas....

Algo así:

Pongamos un programa que maneja varias base de datos como el que estoy haciendo ahora:

Por cada tabla creo una Clase que contenga todo lo relacionado a la tabla altas bajas listados modificaciones los nombres de los campos etc

todas esas clases están agrupadas en una clase llamada ponle “DBSistema”
“DBPresupuestos” , “DBClientes”  que a su ves están instanciada en la class CConex que contiene el código de la conexión. Esta clase Cconex también instancia en forma privada una clase llamada “Clogin”  que contiene los datos de acceso al server de MySQL y los métodos para modificarlos, pero solo la clase conexión puede acceder a ella. Y el acceso a las bases de datos es exclusivamente vía CConex

Estructura de la vista.

El inicio del programa siempre es un modulo Mmain este se encarga de los temas de inicio del programa y muestra la pantalla principal Fmain.

El único código que hay en los form es el que es relacionado a la parte visual. Cada Formulario contiene un Clase que es quien lo maneja por ejemplo CClientes  se debe instanciar para tener acceso a los formularios relacionados con los clientes, ya que esta clase es quien los puede mostrar , maneja y a la ves es la que instancia la clase que maneja el formulario su lógica...

Mmain ---> Fmain
Mmain --->instancia de la clase CClientes
Mmain --->Instancia de la clase CConex
etc...


Cclientes ---> CAltas --->frmAltas
Cclientes ---> CBajas --->frmBajas
Cclientes ---> CNuevo --->frmNuevo


y bueno creo que se entendió la idea... Espero no ofender a algún purista programador.... MVC o POO
 




===================
No mames wey...
 
osunaosuna - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Shell:

Citar:
¿ En que lugar queda el evento ?.

El evento es un suceso que ocurra en el sistema. Por ejemplo que el usuario haga click en un botón. Además, este objeto "botón" tiene sus propios métodos y propiedades.

http://es.wikipedia.org/wiki/Progra...ida_por_eventos
http://www.monografias.com/trabajos...ogeventos.shtml
http://www.gambasdoc.org/help/cat/event?es

osunaosuna:
Modelo Vista Controlador:
Basandome en un ejemplo que encontre hecho en java, me hice un ejemplo con gambas.

Este era el código del modulo inicial, donde se relacionaban las clases:
Public listaPersonas As New PersonaVo[]

Public Sub main()
  
  Dim miPrincipalVentana As New FormPrincipal
  Dim miRegistroVentana As New FormRegistro
  Dim miBuscarVentana As New FormBuscar
  
  Dim miLogica As New Logica
  Dim miCoordinador As New Coordinador
  
  'persistencia de los formularios
  miPrincipalVentana.Persistent = True
  miBuscarVentana.Persistent = True
  miRegistroVentana.Persistent = True
  
  'establecer relaciones entre clases
  miPrincipalVentana.coordina = miCoordinador
  miBuscarVentana.coordina = miCoordinador
  miRegistroVentana.coordina = miCoordinador
  
  '  miLogica.miCoordinador = miCoordinador
  
  'establecer relaciones con la clases coordinador
  miCoordinador.miPrincipalVentana = miPrincipalVentana
  miCoordinador.miBuscarVentana = miBuscarVentana
  miCoordinador.miRegistroVentana = miRegistroVentana
  miCoordinador.milogica = miLogica
  miCoordinador.miPrincipalVentana.Show()
  
End

Aqui puedes ver como relacionaba cada formulario con la la clase "miCoordinador".

Enlace al ejemplo completo
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 06 Julio 2014, 19:25; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Julio:

Entonces hablaríamos de la programación orientada a eventos. Formulario, controles,etc.
El motivo es que en este libro que leo no trata para nada controles, solo trata POO.
Por eso no habla de eventos.

Este tema lo apunto a marcadores. Ya que me parece interesante.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Shell:

Dejo un enlace sobre como trata JAVA los eventos, vereis que en gambas es mucho más simple.
Enlace


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Gracias Julio.

Ayer estuve buscando entre los tutoriales de gambas que existen en pdf a ver si venía algo referente
al tema de los eventos.

Y encontré algo. Lo muestro en otro mensaje.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Shell:

yo he encontrado estos hilos antiguos:

http://foro.gambas-es.org/viewtopic...highlight=raise

http://foro.gambas-es.org/viewtopic.php?f=1&t=26&highlight=raise

http://foro.gambas-es.org/viewtopic...highlight=raise

Me falta encontrar uno que comentaba Jguardon sobre el paso de variables a formularios usando eventos...

Y ademas, todo esto de los eventos, esta muy ligado con los observadores:
http://foro.gambas-es.org/viewtopic.php?f=1&t=27
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Lunes, 07 Julio 2014, 13:26; editado 1 vez 
Editado por jsbsan, Lunes, 07 Julio 2014, 13:26: Añado: Eventos, Raise y Observadores
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Puede Una Clase Saber Quien La Instancio? 
 
Julio:

Podíamos crear un post sobre los eventos en otro mensaje, para no mezclar.
Esta noche le doy un repaso a los hilos que me has pasado.

Quiero poner algún ejemplo en otro mensaje para comentar y ver el tema.
Tomare como referencia tu ultimo mensaje en este tema.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes (Solucionado)Alguien Puede Indicarme Como ... ivanovichenco Instalación 7 Jueves, 24 May 2012, 05:21 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Saber Si Se Esta Ejecutando Desde El IDE [... tincho Aplicaciones/Fragmentos de Código 7 Viernes, 16 Diciembre 2016, 00:17 Ver último mensaje
tincho
No hay nuevos mensajes ¿ Puede Una Clase Negarse A Construir Un ... Shell General 0 Sabado, 11 Abril 2020, 13:33 Ver último mensaje
Shell
No hay nuevos mensajes Puede Una Instancia De Una Clase Suicidarse? tercoIDE General 18 Jueves, 23 Abril 2020, 15:14 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron