![]() |
TForm ableiten mit properties
Hi Leute,
ich versuche gerade eine Klasse zu erstellen, die von TForm abgeleitet ist und über zusätzliche properties verfügt. Ich hab das folgendermaßen gemacht:
Delphi-Quellcode:
unit frCustomFormEx;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TCustomFormEx = class(TForm) private FSingleInstance: Boolean; published property SingleInstance: Boolean read FSingleInstance write FSingleInstance; end; implementation uses DesignIntf, DesignEditors; procedure Register; begin RegisterCustomModule(TCustomFormEx, TCustomModule); end; initialization RegisterClass(TCustomFormEx); finalization UnRegisterClass(TCustomFormEx); end.
Delphi-Quellcode:
Diese beiden Dateien hab ich in ein Package gepackt und installiert. Wenn ich jetzt ein neues Formular erstelle, und statt
unit frFormEx;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, frCustomFormEx; type TFormEx = class(TCustomFormEx) end; implementation {$R *.dfm} initialization RegisterClass(TFormEx); finalization UnRegisterClass(TFormEx); end.
Delphi-Quellcode:
class TForm1 = class(TForm)
Delphi-Quellcode:
schreibe, die dfm-Datei als Text öffne und das object in inherited umändere, dann hab ich im OI nicht meine neue Eigenschaft! Woran liegt's?
class TForm1 = class(TFormEx)
|
Re: TForm ableiten mit properties
Moin!
Hast du es schonmal probiert anstatt die Ableitung per Hand zu machen, deine neue Form einfach mal dem Repository hinzu zu fügen und darüber eine Ableitung zu erstellen? Das klappt viele eher als das ganze per Hand zu machen. MfG Muetze1 |
Re: TForm ableiten mit properties
Hab ich, aber das hat den gleichen Effekt, das Formular funktioniert, eventuelle auf TFormEx plazierten Kompos sind drin, aber die Eigenschaft im OI fehlt!
|
Re: TForm ableiten mit properties
Eine Form musst du anders registrieren:
Delphi-Quellcode:
RegisterCustomModule(TCustomFormEx, TCustomModule);
|
Re: TForm ableiten mit properties
Zitat:
|
Re: TForm ableiten mit properties
Oh.. hab nur das RegisterClass gesehn.. :oops:
Hm.. hast dus richtig in RunTime- und DesignTime-Packages eingeteilt..? |
Re: TForm ableiten mit properties
Ahhhh! :wall:
Die Funktionsdeklaration von Register muss in den Interface-Teil, sonst wird sie garnicht aufgerufen! Jetzt klappt die Sache! |
Re: TForm ableiten mit properties
Hallo zusammen
Funktioniert das auch mit D7? Bei mir findet er nämlich die Units DesignIntf und DesignEditors nicht. Hab dann die Dateien im Delphi-Verzeichnis selber gefunden und die Suchpfade angepasst, aber dann fehlt ihm wiederrum die Unit Proxies in DesignEditors... Und von der sehe ich echt keine Spur :? Gruss Shaman |
Re: TForm ableiten mit properties
Zitat:
Da es sich dabei um ein DesignTime-Package handelt, muss dort noch unter Requires designide eintragen und das Package auf DesignTime only umstellen, wenn du's noch nicht gemacht hast. MfG Stevie |
Re: TForm ableiten mit properties
Zitat:
Kannst du mal näher drauf eingehen wo du da genau was reinschreibst. Ich kann dir nämlich nicht ganz folgen, wo du ein "object in inherited" umänderst :wiejetzt: |
Re: TForm ableiten mit properties
Am besten schaut ihr euch
![]() |
Re: TForm ableiten mit properties
:thumb: Werd ich wenns die Zeit zuläßt mal durchprobieren. Wenn das klappt, wär das echt cool. Wie oft hab ich schon an Forms rumgebastelt, nur damit sie alle das gleiche Aussehen haben in einer Anwendung, bis auf ein paar Eigenschaften...
|
Re: TForm ableiten mit properties
Zitat:
![]() |
Re: TForm ableiten mit properties
Mit dem Repository ist es aber nicht möglich, neue Eigenschaften zu einem Form hinzuzufügen; und darum ging es mir.
In Verbindung mit der gleichzeitigen Benutzung von Komponenten im "Default"-Form kannst du diese Möglichkeit vergessen! |
Re: TForm ableiten mit properties
Zitat:
|
Re: TForm ableiten mit properties
Zitat:
Doch noch ein Wort zur Vorsicht: Bei der Entwicklung des Frameworks und der Basis-Forms zickt Delphi (sowohl 6 als auch 7) ziemlich heftig rum, wenn du das Form-DesignTime-Package neu kompilierst. :wall: Benutzt du hinterher diese Formulare nur noch als Grundgerüst, klappt alles wunderbar! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz