Einzelnen Beitrag anzeigen

DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Property in abgeleitetem Form

  Alt 12. Mär 2004, 19:59
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
  Mit Zitat antworten Zitat