Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Una unidad, más de una forma (https://www.clubdelphi.com/foros/showthread.php?t=77469)

mlara 29-01-2012 20:47:57

Una unidad, más de una forma
 
Podría una unidad asociarse con más de una forma y luego trabajar con una u otra alternativamente?

jacanche 29-01-2012 20:57:39

podrias explicar un poco mejor que quieres lograr?

mlara 29-01-2012 21:01:54

Tengo dos versiones de un mismo programa. Una tiene un par de diferencias visuales en la misma ventana con relación a la otra. La idea es que a través de la directiva {$IFDEF} y una definición de un símbolo del preprocesador se ejecute cierto código. Esto no tiene problema. La cuestión es que entre una y otra, la interfaz cambia un poco: una podría tener un par de botones más, este otro botón va un poco más arriba, este panel ya no debería existir, ...

Ñuño Martínez 01-02-2012 21:23:47

Por poder se puede, pero me parece de lo más lioso, sobre todo en mantenimiento.

Yo lo que haría es extender (o heredar) la clase del formulario y hacer los cambios en el heredado, usando uno u otro según el caso. Creo recordar que había una opción que lo hace automáticamente pero también se puede hacer a mano:
  1. Creas una unidad (UNIT) nueva.
  2. Añades a la sección USES de la sección INTERFACE la unidad del formulario que quieres usar de base.
  3. Creas una clase que herede la clase del formulario (Por ejemplo: TFormPrincipalModificado = CLASS (TFormPrincipal)).
  4. Añades a esta clase un procedimiento para dar respuesta a un onCreate que modifique la posición, tamaño, visibilidad y/o activación de los controles que quieras cambiar.
  5. En el constructor (Create) del formulario asignas el evento onCreate que has creado.
  6. Ahora usas el {$IFDEF} en la línea que cree el formulario, de forma que cree uno u otro según el caso. No olvides añadir la unidad en el USES


La franja horaria es GMT +2. Ahora son las 13:29:57.

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