Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   duplicar un form para posteriormente modificar solo unos datos (https://www.clubdelphi.com/foros/showthread.php?t=37405)

Ade 12-11-2006 23:26:08

duplicar un form para posteriormente modificar solo unos datos
 
Tengo ya creado un form con su funcionalidad (todos sus procedimientos, su diseño con pestañas, etc..) se llama proveedores y querria crear otro llamado clientes cuya estructura y procedimientos serian similares salvo algunos pequeños cambios ( es decir, presentaria el mismo diseño, igual numero de pestañas y éstas con los mismos nombres), podria de alguna manera mas eficiente realizarlo sin tener q ir copiando y pegando?

saludos a todos y gracias

dec 13-11-2006 05:58:23

Hola,

Nunca lo probé personalmente, pero, me consta que en Delphi es posible heredar formularios por medio de cierto asistente del entorno. Te diré la forma en que creo que se hace, empero, es posible que existan otras o que esta no sea la más adecuada. En unas pruebas todo fue bien, pero, ya digo, si algún compañero ve menester rectificame le ruego que lo haga.

Se trata de hacer clic con el botón derecho en el formulario y elegir la opción del menú contextual "Add to repository...". Rellena las casillas del cuadro de diálogo que te aparece y haz un par de pruebas. Puedes "copiar" y "heredar" un formulario, al menos, y, efectivamente (al menos en el caso de la copia) obtendrás un duplicado del formulario, incluso con su código fuente.

Dale un par de vueltas al asunto a ver. ;)

rafita 13-11-2006 09:53:22

Hola, y si no te funciona o no te aclaras con el Repositorio de Objetos, puedes hacerlo a mano:
Copia los archivos *.pas y *.dfm que necesites, renombrándolos:
Por ejemplo:
UProveedor.pas y UProveedor.dfm --> UClientes.pas y UProveedor.pas

Abrelos con Delphi y cámbiales las referencias a los nombres anteriores:
* En el formulario, cámbiale el nombre (FormProveedor --> FormClientes). Esto cambiará en el código la referencia a todos los procedimientos.
* En la unidad, desde el nombre (unit UProveedor --> unit UClientes)
y todas las referencias que encuentres,
por ejemplo, al cerrar el formulario:
Código:

procedure TFormClientes.FormClose(Sender: TObject; var Action: TCloseAction);
var Ficha : TFormClientes;
begin
  Action:=caFree;
  Ficha.Release;
end;

Guarda los cambios que les has hecho, y añádelos a tu proyecto.

Yo siempre hago todo "a mano" (y así me va....):confused:
Saludos

Neftali [Germán.Estévez] 13-11-2006 09:55:43

Cita:

Empezado por dec
... Se trata de hacer clic con el botón derecho en el formulario y elegir la opción del menú contextual "Add to repository...". Rellena las casillas del cuadro de diálogo que te aparece y haz un par de pruebas. Puedes "copiar" y "heredar" un formulario, al menos, y, efectivamente (al menos en el caso de la copia) obtendrás un duplicado del formulario, incluso con su código fuente.

La opción que tecomenta dec, es correcta y se usa si quieres dejar el formulario "fijo" en el repositorio, incluso para futuros proyectos. Si la herencia que estás haciendo es sólo esta vez y para este proyecto, no hace falta añadirlo al repositorio.

Basta con ir al Menú File/New/Other Y entre las pestañas visibles aparecerá una con el nombre del proyecto que tienes abierto. Selecciona la pestaña, el formulario, asegurate de que el radioButton inferior está en "inherited" y pulsa aceptar.

Si ese formulario lo vas a heredar más veces y en otros proyectos, es mejor el sistema anteriormente comentado.

Un saludo.

Ade 13-11-2006 13:05:17

Gracias a todos por vuestra ayuda voy a probar

Saludos


La franja horaria es GMT +2. Ahora son las 12:55:44.

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