Ogni tanto quando modifico le mie classi TFrame (aggiungendo proprietà, metodi, ecc.), L'IDE si confonde e agisce come se pensasse che il frame sia una forma, completo di intestazione/didascalia, bordi, ecc. Tuttavia, chiaramente la classe è dichiarata come TFrame discendente. Qualche idea su cosa causa questo, come prevenire e come risolvere?IDE Delphi che tratta TFrame come se fosse un modulo
Sto usando Delphi 2007 Pro. Nota anche (se è importante), i discendenti TFrame sono tipicamente registrati con l'IDE (cioè sulla tavolozza) tramite un pacchetto in fase di progettazione.
tardi: Aggiuntive "specificità": La cornice che sto avendo questo problema con al momento è, visivamente, un TFrame molto semplice (cambiano solo dal nuovo TFrame è la dimensione e il colore di sfondo).
Ecco la sua dichiarazione di classe:
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;
Questo telaio è utilizzata come classe base per un certo numero di altri. Di solito lo modifica direttamente dal progetto BPL a cui appartiene (perché tutti questi frame vengono installati nella tavolozza), anziché come parte di un progetto EXE, con i relativi moduli aperti ecc.
Inoltre, "Designer incorporato" è selezionato in Strumenti -> Opzioni.
Sto salvando tutti i file DFM come testo piuttosto che binario (se questo è importante).
Solo un aggiornamento su questo: la risposta sembra essere una combinazione di risposta di birger sotto PLUS che crea una "Base Frame Class" che NON ha modifiche dal normale TFrame, e THEN eredita da quello prima di aggiungere proprietà, metodi, ecc. Sembra stabilizzare in qualche modo l'ereditarietà. – Jamo