De vez en cuando, cuando estoy retocando las clases de mi TFrame (agregando propiedades, métodos, etc.), el IDE se confunde y actúa como si pensara que el marco es una forma, completar con encabezado/título, bordes, etc. Sin embargo, claramente la clase se declara como un descendiente TFrame. ¿Alguna idea sobre qué causa esto, cómo prevenir y cómo solucionarlo?Delphi IDE tratar TFrame como si fuera un Formulario
Estoy usando Delphi 2007 Pro. También tenga en cuenta (si es importante), los descendientes de TFrame generalmente se registran con el IDE (es decir, en la paleta) a través de un paquete de tiempo de diseño.
después: "detalles adicionales": El cuadro que estoy teniendo este problema en este momento es, visualmente, una TFrame muy básico (sólo cambian de nuevo TFrame es el tamaño y el color de fondo).
Aquí es su declaración de la clase:
TBasePanel = class(TFrame)
private
FPanelManager: TPanelManager;
procedure SetPanelManager(const Value: TPanelManager);
protected
procedure Connect; virtual; abstract;
procedure Disconnect; virtual; abstract;
procedure Refresh; virtual;
procedure Requery; virtual; abstract;
published
property PanelManager: TPanelManager read FPanelManager write
SetPanelManager;
Esta trama se utiliza como clase base para una serie de otros. Normalmente lo estoy editando directamente desde el proyecto BPL al que pertenece (porque todos estos cuadros se instalan en la paleta), en lugar de como parte de un proyecto EXE, con las Formas relacionadas abiertas, etc.
Además, "Diseñador incorporado" está marcado en Herramientas -> Opciones.
Estoy guardando todos los archivos DFM como texto en lugar de binario (si eso no importa).
Apenas una actualización en esto: La respuesta parece ser una combinación de la respuesta de birger continuación, además de la creación de una "clase de marco base" que no tiene cambios desde el TFrame normal ya continuación se hereda de que antes de agregar propiedades, métodos, etc. Parece que estabiliza la transmisión de herencia de alguna manera. – Jamo