Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TForm ableiten mit properties (https://www.delphipraxis.net/24747-tform-ableiten-mit-properties.html)

Stevie 25. Jun 2004 14:12


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:
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.
Diese beiden Dateien hab ich in ein Package gepackt und installiert. Wenn ich jetzt ein neues Formular erstelle, und statt
Delphi-Quellcode:
class TForm1 = class(TForm)
Delphi-Quellcode:
class TForm1 = class(TFormEx)
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?

Muetze1 25. Jun 2004 14:37

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

Stevie 25. Jun 2004 14:48

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!

Motzi 26. Jun 2004 18:22

Re: TForm ableiten mit properties
 
Eine Form musst du anders registrieren:
Delphi-Quellcode:
RegisterCustomModule(TCustomFormEx, TCustomModule);

Stevie 28. Jun 2004 07:27

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Motzi
Eine Form musst du anders registrieren:
Delphi-Quellcode:
RegisterCustomModule(TCustomFormEx, TCustomModule);

:wiejetzt: Guck mal in meinem ersten Beitrag, was in der Prozedur Register steht!?

Motzi 28. Jun 2004 18:28

Re: TForm ableiten mit properties
 
Oh.. hab nur das RegisterClass gesehn.. :oops:

Hm.. hast dus richtig in RunTime- und DesignTime-Packages eingeteilt..?

Stevie 28. Jun 2004 19:22

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!

Shaman 21. Jan 2005 09:54

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

Stevie 21. Jan 2005 10:03

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Shaman
Funktioniert das auch mit D7?

Auf jeden Fall!

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

Jelly 21. Jan 2005 10:10

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Stevie
Wenn ich jetzt ein neues Formular erstelle, und statt
Delphi-Quellcode:
class TForm1 = class(TForm)
Delphi-Quellcode:
class TForm1 = class(TFormEx)
schreibe, die dfm-Datei als Text öffne und das object in inherited umändere...

Ist das nicht bischen riskant direkt in der dfm-Datei was zu ändern...

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:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz