Si, pero creo que es despreciable, porque los .dfm o .lfm heredados no incluyen los componentes del anterior.. a menos que les cambies propiedades. Obviamente que si en lo heredado agregas nuevos componentes, estos tienen que figurar.
De todos modos, es clasico de la POO que tenga estas desventajas: que sea mas lento, que es mas dificil, que al principio es mas complicado, que necesitas mas codigo, que crece el tamaño del ejecutable.. pero bueno tiene sus beneficios por otra parte, con algo hay que pagarlos!
Cuando hice la prueba en Lazarus de heredar usando el menu contextual, directamente me dio error. Igual hacerlo a "mano" tampoco es tanto lio. Una cosa que me llama la atencion de Lazarus es que no podes ver el form como su representacion en texto, esto en Delphi si podes hacerlo usando boton derecho sobre el form -> View as Text. Extrañamente tambien, no hace falta cambiar la declaracion en el .LFM en la primer linea, que por defecto es object Form2: TForm2 a inherited. Al cambiar la clase ancestro, si se abre el .LFM con un editor de textos, se ve que el solo ya hizo el cambio a inherited
Si bien te habia entendido mal cual era el proposito, la tecnica es la misma, creas un formulario "abstracto" y luego en los descendientes agregas las caracteristicas que faltan.
Que no te de verguenza, que durante mucho tiempo yo hacia exactamente lo mismo, Tambien llegue a hacer lo mismo que comenta enecumene. Pero la alternativa mas "poderosa" es esta, osea como dije mas arriba, es Orientacion a Objetos aplicada a Formularios. Es mas dificil si, pero con el tiempo es la alternativa mas segura y que te hara trabajar menos
Por ultimo, quiero decir que si bien esta todo hermoso, hay que tener cuidado y no abusar de la herencia (tanto de clases como visual) porque suele tener varios problemas, por ejemplo, cuando tenes dos descendientes que agregan la funcionalidadA y la funcionalidadB y luego necesitas un descendienteC que tambien tiene que tener la funcionalidadA y la funcionalidadB (es imposible juntarlos y tenes que copiar todo). Y tambien para el caso de la herencia visual, ha pasado y es muy molesto, que los IDE no la suelen trabajar al 100% y hay errores que te hacen perder mas tiempo del que se gana.
Hay algunos controles que son bastante complicados de manejar con herencia visual. Con el tiempo uno le encuentra las mañas, por ejemplo, los controles como TGridPanel que manejan colecciones de elementos, a veces no heredan dichas colecciones y se te corrompe el form heredado; entonces es cuando uso hace ese trabajo por codigo mas que en diseño
Edited by Agustin Ortu, 22 November 2016 - 08:39 AM.