Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TMyForm: Published Properties vermisst (https://www.delphipraxis.net/159130-tmyform-published-properties-vermisst.html)

Medium 15. Mär 2011 17:08

TMyForm: Published Properties vermisst
 
Ahoi!

Ich habe hier eine Reihe von Formularen, die alle ein paar Dinge gemein haben. Findig wie ich bin, dachte ich: Machste eine hübsche Klasse draus, legst ein Formular wie immer (via Datei->Neu->Formular) an, und änderst im Code die Basisklasse des Forms auf TMyForm. Speichern, neu öffnen, alles gut. Leider nicht alles gut.

Mein Formular:
Delphi-Quellcode:
type
  TMyForm = class(TForm) // Bewusst nicht TCustomForm, ich will das gepublishte Zeug von TForm schon haben
  private
    FIsPopup: boolean;
    FTitle: string;
    FShowTitlebar: boolean;
    FTitleImage: TImage;
    FToolArea: TWinControl;
    FMenuArea: TWinControl;
    FMainArea: TWinControl;
    FTitleLabel: TLabel;
    procedure SetShowTitlebar(const Value: boolean);
    procedure SetTitle(const Value: string);
    procedure SetMainArea(const Value: TWinControl);
    procedure SetMenuArea(const Value: TWinControl);
    procedure SetToolArea(const Value: TWinControl);
  protected
    procedure DoShow; override;
    procedure DoHide; override;
  public
    constructor Create(AOwner: TComponent); override;
    constructor CreateMulti(MainArea, Menu, Tools: TWinControl);
  published
    property Title: string read FTitle write SetTitle;
    property ShowTitlebar: boolean read FShowTitlebar write SetShowTitlebar;
    property IsPopup: boolean read FIsPopup write FIsPopup;
    property MainArea: TWinControl read FMainArea write SetMainArea;
    property MenuArea: TWinControl read FMenuArea write SetMenuArea;
    property ToolArea: TWinControl read FToolArea write SetToolArea;
  end;
Zur Runtime werden zwar schön meine Konstruktoren und alles durchlaufen, zur Designtime aber tauchen meine Title* Komponenten nicht auf, also wird der Konstruktor wohl nicht aufgerufen. Auch meine 6 Properties sind im OI nicht aufzufinden, via Code jedoch zugänglich (was nicht viel hilft). Alles sieht im Designer nach unverändertem TForm aus.

Auch neu Öffnen der gesamten IDE sowie Projekt hat nicht geholfen. Was läuft hier schief? (Delphi 2010 nutze ich hier.) Dankbarkeit für jegliche Info ist garantiert :)

dataspider 16. Mär 2011 07:44

AW: TMyForm: Published Properties vermisst
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich habe vor Jahren mal so etwas gebastelt.
Du musst auf jeden Fall 2 Packages machen (Run- Desintime) und das Formular mit RegisterCustomModule registrieren.

Der Code ist wie gesagt schon ein paar Jahre alt und bedarf sicher etwas Anpassung.

Ich selbst bin davon abgegangen. Die IDE kann u.U. instabil werden, vor Allem dann, wenn man an der Formularklasse noch mal etwas ändert.
Ich habe zwar auch für alle Formulare mein eigenes Basisform, verzichte aber auf die Unterstützung des OI und damit auf Published Properties.

Frank

Medium 16. Mär 2011 08:50

AW: TMyForm: Published Properties vermisst
 
So etwas in dieser Art hatte ich befürchtet, danke dir! Ich probier das einfach mal. Das sollte ja eigentlich™ möglich sein, ohne dass einem die IDE um die Ohren fliegt - zumindest halte ich das schon für mehr oder weniger eine Standardvorgehensweise :cyclops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz