Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   No aparecn las propiedades Published de un form Padre (https://www.clubdelphi.com/foros/showthread.php?t=24135)

bataola 09-08-2005 18:54:57

No aparecn las propiedades Published de un form Padre
 
Hola a todos!

Les comento, estoy viendo un programa y me encuentro con una serie de formularios que tienen ciertas propiedades Published pero las mismas no aparecen en el Inspector de Objectos.
Por lo que pude ver, estos formularios se usan como base para otros Forms (herencia). Cuando necesito crear un nuevo Form a partir de uno de estos, lo hago de la siguiente manera: File-New-Other y aqui dentro elijo el formulario deseado en la solapa del proyecto. Se que para que aparescan alli deben estar incluidos en el Uses del .dpr.
Pero estas propiedades Published no deberian aparecer en el Object Inspector?

Salu2

jmariano 09-08-2005 19:08:11

Saludos!

Para que las propiedades "published" de un formulario aparezcan en el inspector de objetos necesitas registrar dicho formulario en el entorno usando el metodo "RegisterCustomModule". Ejemplo:

Código Delphi [-]
uses
  DesignEditors, DesignIntf;
 
procedure register;
begin
  RegisterCustomModule(TFrmPadre, TCustomModule);
end;

"TFrmPadre" seria el formulario padre que contiene las propiedades "published" que han de tener los formularios hijos, y es el formulario que tendrias registrado en el repositorio de objetos de Delphi.

EDITO: "TFrmPadre" solo se utilizaria para publicar las propiedades pero nada mas, no llevaria ni componentes ni nada.

(Si no me explique bien, preguntame de nuevo).

Chao!

bataola 09-08-2005 19:27:31

"TFrmPadre" seria el formulario padre que contiene las propiedades "published" que han de tener los formularios hijos, y es el formulario que tendrias registrado en el repositorio de objetos de Delphi.

EDITO: "TFrmPadre" solo se utilizaria para publicar las propiedades pero nada mas, no llevaria ni componentes ni nada

Un par de cosas que no entiendo:
1) El procedure Register es Privado de "TFrmPadre"?
2) cuando yo creo un Form, con todos sus componentes y propiedades y eventos correspondientes, aparece en el repositorio de objetos y luego yo como te comente antes, heredo de el al crear un nuevo form. Porque decis que no llevaría ni componentes ni nada?

roman 09-08-2005 19:33:45

Cita:

Empezado por bataola
Porque decis que no llevaría ni componentes ni nada?

Quizá este hilo te aclare un poco.

// Saludos

bataola 09-08-2005 19:43:47

Gracias igual!!

jmariano 09-08-2005 19:47:44

Cita:

Empezado por bataola
"TFrmPadre" seria el formulario padre que contiene las propiedades "published" que han de tener los formularios hijos, y es el formulario que tendrias registrado en el repositorio de objetos de Delphi.

EDITO: "TFrmPadre" solo se utilizaria para publicar las propiedades pero nada mas, no llevaria ni componentes ni nada

Un par de cosas que no entiendo:
1) El procedure Register es Privado de "TFrmPadre"?
2) cuando yo creo un Form, con todos sus componentes y propiedades y eventos correspondientes, aparece en el repositorio de objetos y luego yo como te comente antes, heredo de el al crear un nuevo form. Porque decis que no llevaría ni componentes ni nada?

A la primera pregunta: No, no es privado. Se trata del mismo procedimiento que usamos para, por ejemplo, registrar componentes, asi que no va dentro de ninguna clase. Lo mejor es que lo definas en una unidad que vaya dentro de un paquete de solo diseño.

A la segunda pregunta: Cuando un formulario es registrado como un módulo dentro del entorno para poder publicar sus propiedades en el inspector de objetos, cualquier componente que, en diseño, depositemos en él se "pierde" luego al heredar de él (esto es debido a que Delphi tiene la limitacion de no permitir componentes en formularios registrados como módulos). Por eso lo mejor es crear un formulario vacio con las propiedades "published" correspondientes, registrarlo como módulo y, después, trabajar con los formularios que hereden de él (éstos, lógicamente, si que pueden llevar componentes).

Si sigues sin entender, pregúntame de nuevo!

Chao!

bataola 09-08-2005 19:58:52

Gracias nuevamente!!! quedó claro.


La franja horaria es GMT +2. Ahora son las 18:56:10.

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