FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Directivas para realizar uses de formularios dependiendo de lo que requiera
Buen día, tengo una inquietud tengo tres formularios que entre el formulario 1 y 2 tengo el uses del formulario 1
Entre el formulario 3 y formulario 2 el uses del formulario 2, pero lo que no quiero es tener que usar el formulario 1 porque lo contiene el formulario 2. Quiero realizar el uses con directivas se que asi no tendré que usar el formulario 1 en el formulario 3, pero no se como implementarlo. Alguna idea?? Gracias. |
#2
|
||||
|
||||
Bienvenido Soa Pelaez,
La verdad no entendi nada, podrias explicarlo un poco mejor? |
#3
|
||||
|
||||
Cita:
El 1 necesita del 2 El 3 necesita del 2 Pero lo que no quiero es por querer usar el formulario dos tener que arrastrar el formulario 1 porque se encuentra entre los uses del formulario 2 Con directivas se puede hacer, pero necesito saber como. |
#4
|
||||
|
||||
Ósea que tenés una referencia circular
El 1 necesita del 2 El 3 necesita del 2 El 2 necesita del 1 Eso obviamente es malo y no se soluciona con directivas de compilación. Es malo por justamente la situación que se te presentó: necesitas tanto a 1 como a 2 en tu proyecto pero sólo te interesa usar uno Si es posible pon el código en donde se genera la dependencia y vemos como ayudarte a refactorizar Básicamente la parte que nos interesa de 2 es, que parte no compila si se elimina a 1 del uses |
#5
|
||||
|
||||
Este es un ejemplo trivial, basicamente consiste de dos Forms, Form1 y Form2
El Form1 consiste de un memo y un boton, el cual en su evento OnClick, crea y visualiza de manera modal el Form2. Por lo tanto en su clausula uses encontramos la Unit2 El Form2 simplemente tiene un Edit y un boton; Form2 en su clausula uses contiene a Unit1, por lo tanto creamos una referencia circular Unidad1 -> Usa a la Unidad2 Unidad2 -> Usa a la Unidad1 En el evento OnClick del Form2, se agrega al Memo del Form1 el contenido del Edit, y se cierra el formulario El codigo seria el siguiente:
Y en efecto si lo ejecutamos, podria decirse que funciona bien. Pero obviamente, si a mi me interesa en otro proyecto usar solo uno de estos dos Form, no me queda otra alternativa que incluir a los dos Una primera solucion podria ser, quitar del uses del Form2, a la Unit1; obviamente el codigo ahora no compilara ya que no se conoce a 'Form1'. Asi que la unica alternativa es acceder desde el Form1 al valor del Edit, asi:
Pero no seria mas lindo poder hacer algo como esto?:
Obviamente se puede ir mejorando mas y mas, pero eso te lo dejo para que experimentes vos mismo Saludos |
#6
|
||||
|
||||
Cita:
{$IFDEF CLR} System.ComponentModel.Design.Serialization, System.Security.Permissions, System.Security, // Esto lo usa solamente si es un equipo que tiene S.O Windows {$ENDIF} {$IFDEF LINUX} WinUtils, libc, // Esto lo usa solamente si es un equipo que tien S.O Linux {$ENDIF} Alguien tiene un ejemplo de algo asi, pero especificando uses de Unit, poniendo en contexto el ejemplo que cito en mi inquietud |
#7
|
||||
|
||||
Hola Soa Pelaez.
La verdad que no estoy seguro de haber comprendido tu consulta, ¿ Es algo parecido a lo que se trata aquí ? Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Hola ecfisa si asi lo quiero hacer, pero necesito un ejemplo en codigo, porque realmente no tengo idea de como llamar esto.
Alguien podria colaborarme con eso. |
#10
|
||||
|
||||
Hola de nuevo.
Yo tampoco entiendo cuál es la situación concreta a que vas a aplicarlo, pero te pongo unos casos básicos:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-12-2015 a las 18:16:12. |
#11
|
||||
|
||||
Hay que entender que las directivas de compilacion son para el compilador, para generar el ejecutable binario final. No es informacion que se evalua en tiempo de ejecucion "si es el linux usa esto, si es windows usa esto"
Mas bien seria, "compila en windows usando estas unidades, compila en linux usando estas otras" |
#12
|
||||
|
||||
Si eso lo se, pero también llegue a ver un ejemplo en donde creaban directivas para caso de Uses de Unit.
Que cuando estaba en tal formulario se usan solo las unidades que están dentro de la directiva. En mi ejemplo necesito que reconozca que si llamo el formulario 2 desde mi formulario 3 solo realice el use Unit2, sin tener que usar la Unit1 que tengo implementada en el formulario 2, se que con directivas se puede, solo que no recuerdo bien como hacerlo. |
#13
|
||||
|
||||
Yo sigo sin entender
Osea que Form3 llama a Form2 pero Form2 necesita Unit1. Y lo que se quiere es usar solamente la Unit3 y Unit2? |
#14
|
||||
|
||||
Si lo ejecuto desde el formulario 2 quiero usar la Unit1
Si lo ejecuto desde el formulario 3 quiero que solo use Unit2(sin tener que usar Unit1). |
#15
|
||||
|
||||
Cita:
Solo que aun no se como implementarlo por eso necesito un ejemplo practico en código. |
#16
|
||||
|
||||
Asi lo estoy haciendo pero aun no da lo que necesito.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Directivas de compilación | duilioisola | OOP | 3 | 02-12-2011 16:02:19 |
directivas de grupo | gri | Redes | 0 | 27-01-2011 10:00:33 |
Directivas de compilación | Livey | Varios | 0 | 21-09-2010 23:03:51 |
Como puedo Enviar Email La cantidad de veces que se requiera | jandres | Internet | 3 | 15-04-2008 23:03:49 |
¿Directivas compilacion? | drykea | Varios | 1 | 03-05-2007 14:51:15 |
|