PDA

Ver la Versión Completa : duplicar un form para posteriormente modificar solo unos datos


Ade
12-11-2006, 23:26:08
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:
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
... 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