Ich habe (erfolgreich) ein Formular in die Objektablage gelegt und auch - wie unten beschrieben - registriert, um die neuen Eigenschaften direkt im Objektinspektor ändern zu können. Wenn ich nun über die Objektablage eine neue Instanz auswähle und "vererben" anklicke, dann sind die neuen Properties vorhanden, das Formular verliert jedoch alle Komponenten (im folgenden Beispiel eben den Button sowie Daten wie Formulargröße etc.). Kann mir da jemand sagen woran das liegen könnte?
Wie gesagt, das Registrieren und das Einfügen in die Objektablage klappt ohne Probleme und ohne Fehler. Hinweise wäre ich wirklich sehr dankbar. Das erstellen von individuellen Formularen als Vorlage ist ja - im Vergleich zu "normalen" Komponenten - wirklich eine Sache für sich
(
// EDIT: Ein weiteres Problem, welches eventuell ein Hinweis auf das zugrunde liegende Problem ist und damit zusammenhängen könnte - daher kein neues Thema erstellt: In der Objektablage erscheint mein selbst erstelltes Formular erst, nachdem ich über Neu->
VCL-Formularanwendung eine neue Anwendung erstellt habe. Das "normale"
VCL-Form kann ich auch auswählen ohne dass ein Projekt geöffnet ist... Ich werde noch wahnsinnig.
Hier der (bezüglich des Formulars abgespeckte) Source...
// EDIT2: Anbei noch Screenshots vom "richtigen" Formular und von dem Formular welches erscheint, wenn ich über die Objektablage eine veerbte Instanz meines Formulars erstellt. Kopieren hingegen funktioniert korrekt was die Darstellung des Formulars angeht.
Delphi-Quellcode:
unit uLoginForm;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TLoginForm =
class(TForm)
ButtonOk: TButton;
procedure ButtonOkClick(Sender: TObject);
private
{ Private-Deklarationen }
FNeuesItem : Integer;
public
{ Public-Deklarationen }
published
property NeuesItem : Integer
read FNeuesItem
write FNeuesItem;
end;
procedure Register;
var
LoginForm: TLoginForm;
implementation
uses DesignIntf, DesignEditors;
{$R *.dfm}
procedure TLoginForm.ButtonOkClick(Sender: TObject);
begin
ShowMessage('
Test');
end;
procedure Register;
begin
RegisterCustomModule(TLoginForm, TCustomModule);
end;
end.
... und der Quelltext des Packages:
Delphi-Quellcode:
package Kuebler_Projekt;
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING}
{$IMPLICITBUILD ON}
requires
rtl,
vcl,
designide;
contains
uLoginForm
in '
uLoginForm.pas'
{LoginForm};
end.