Delphi-PRAXiS

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:

Stevie 21. Jan 2005 10:12

Re: TForm ableiten mit properties
 
Am besten schaut ihr euch mein Tutorial zu diesem Thema mal an! ;-)

Jelly 21. Jan 2005 10:31

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...

Hansa 21. Jan 2005 11:15

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Jelly
...Wie oft hab ich schon an Forms rumgebastelt, nur damit sie alle das gleiche Aussehen haben in einer Anwendung, bis auf ein paar Eigenschaften...

Ging mir genauso. Allerdings hat Muetze den Weg schon gezeigt. Das geht mit dem Repository zu deutsch "Objektablage". An den Forms rumzufummeln ist ziemlich kompliziert und zum Schluß geht es doch nicht richtig. Ich habe schon oft darauf hingewiesen, aber angeblich hat niemand ungefähr gleiche Forms, die sich nur in Details unterscheiden. 8) Mittlerweile glaube ich aber eher, daß es mehr Spaß macht, an jeder Form die Schriftart zu ändern, Buttons usw. hinzuzufügen, die Events der Form schön überall anders zu machen und dann über einen Fehler zu jammern, der nur bei einer Form auftaucht, die sich angeblich nur in einer Sache von einer fast gleichen unterscheidet. :mrgreen:

http://www.delphipraxis.net/internal...ct.php?t=21798

Stevie 21. Jan 2005 11:19

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!

Jelly 21. Jan 2005 12:52

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Stevie
Mit dem Repository ist es aber nicht möglich, neue Eigenschaften zu einem Form hinzuzufügen; und darum ging es mir.

Genau das habe ich auch vermisst.

Stevie 21. Jan 2005 13:01

Re: TForm ableiten mit properties
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von Stevie
Mit dem Repository ist es aber nicht möglich, neue Eigenschaften zu einem Form hinzuzufügen; und darum ging es mir.

Genau das habe ich auch vermisst.

Dann dürfte das Tutorial genau das Richtige für dich sein. Genauso hab ich es nämlich in meinem eigenen Framework gemacht.
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 07:42 Uhr.

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