![]() |
Property in abgeleitetem Form
Hi Leute,
ich hab ein Problem, eine Property in einem von TForm abgeleiteten Formular zu erstellen! Ich hab in dem published-Abschnitt eine neue property erstellt (Boolean) und read- und write-Zugriff auf eine private-Variable gegeben. Aber diese Eigenschaft erscheint nicht im Objektinspektor! Was mache ich falsch? |
Re: Property in abgeleitetem Form
zeig mal die abgeleitete klasse!
|
Re: Property in abgeleitetem Form
Delphi-Quellcode:
TStandardForm = class(TForm, IStandardForm)
ADOConnection: TADOConnection; dxBarManager: TdxBarManager; ActionList: TActionList; ImageList: TImageList; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } FUseMainConnection: Boolean; protected MainForm: IMainForm; public { Public-Deklarationen } procedure RegisterForm(AOwner: TComponent); procedure UnRegisterForm(AOwner: TComponent); published property UseMainConnection: Boolean read FUseMainConnection write FUseMainConnection stored FUseMainConnection default True; end; |
Re: Property in abgeleitetem Form
hi stevie,
da fehlt auf jeden fall sowas wie RegisterCustomModule(TStandardForm , TCustomModule); damit die Form in der IDE registriert wird. das ist aber je nach delphi version ein bißchen anders google mal nach RegisterCustomModule und deiner Delphi Version |
Re: Property in abgeleitetem Form
jetzt habe ich 2 stunden versucht eine abgeleitete Klasse von TForm
zu erstellen, deren neue events und properties im OI stehen. Zumindest ueber die die Objektablage hat es geklappt: ( mit D7 Ent) 1. Habe folgendes Formular erstellt
Delphi-Quellcode:
2. dann dieses Formular der Objektablage hinzugefügtunit uFormx; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TFormX = class(TForm) private fValue: Integer; fOnChangeValue: TNotifyEvent; procedure SetValue (Value: Integer); published property Value: Integer read fValue write SetValue; property OnChangeValue: TNotifyEvent read fOnChangeValue write fOnChangeValue; end; var FormX: TFormX; implementation {$R *.dfm} { TForm1 } procedure TFormX.SetValue(Value: Integer); begin if Value <> fValue then begin fValue := Value; if Assigned (fOnChangeValue) then fOnChangeValue (self); end; end; end. 3. Unit mit Registerfunktion geschrieben
Delphi-Quellcode:
4. beide Units in ein entwurfszeit gesteckt und compiliert
unit uFormXReg;
interface uses uFormX; procedure Register; implementation uses DesignIntf, DesignEditors; procedure Register; begin RegisterCustomModule(TFormX, TCustomModule); end; end.
Delphi-Quellcode:
5. Wenn ich nun ueber datei/neu/weitere das Formular aus der Objektablage auswaehle (mit option vererben) sind die properties/events im OI vorhanden.
package MyPackage;
{$R *.res} {$ALIGN 8} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$DESIGNONLY} {$IMPLICITBUILD OFF} requires rtl, vcl, designide; contains uFormx in '..\..\..\..\testPropForm\uFormx.pas' {FormX}, uFormXReg in '..\..\..\..\testPropForm\uFormXReg.pas'; end. vielleicht hat ja jemand noch was besseres auf lager |
Re: Property in abgeleitetem Form
Ich hab auch noch ziemlich rumgebastelt. Dabei hab ich herausgefunden, dass man entweder die Properties genau so in ein Formular bekommt, wie du es gemacht hast. Allerdings funktioniert es dann nicht mehr, dass auf diesem Formular plazierte Komponenten übernommen werden. Dafür sind dann zwei Schritte erforderlich: erst die Properties in ein Form packen, dieses Form erben und dann die Komponenten darauf plazieren. Allerdings hagelt es ordentlich Fehler, wenn man die Properties verändert usw... :-(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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