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:
unit 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.
2. dann dieses Formular der Objektablage hinzugefügt
3.
Unit mit Registerfunktion geschrieben
Delphi-Quellcode:
unit uFormXReg;
interface
uses uFormX;
procedure Register;
implementation
uses DesignIntf, DesignEditors;
procedure Register;
begin
RegisterCustomModule(TFormX, TCustomModule);
end;
end.
4. beide Units in ein entwurfszeit gesteckt und compiliert
Delphi-Quellcode:
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.
5. Wenn ich nun ueber datei/neu/weitere das Formular aus der Objektablage auswaehle (mit option vererben) sind die properties/events im
OI vorhanden.
vielleicht hat ja jemand noch was besseres auf lager