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 "TCustomForm" möglich? (https://www.delphipraxis.net/104559-tcustomform-moeglich.html)

rawsoul 6. Dez 2007 12:29


"TCustomForm" möglich?
 
Hallo,

da ich mir gerne meine Forms ein wenig kreativer gestalte (z.B. bsNone, Panels drauf und diese als Fenstertitel "missbrauchen", ...), habe ich mich eben in die Komponentenentwicklung eingelesen, um mir Arbeit zu ersparen. Bis ich gemerkt habe, das eine Form garkeine eigentliche Komponente in diesem Sinne ist...

Gibt es die Möglichkeit, eine Art Form-Template, oder gar eine eigene Form selbst zu definieren, sodass ich diese in anderen Projekten nur noch einladen muss? Falls nein, welchen Weg würdet ihr dazu gehen?

Grüße,
Frank.

OregonGhost 6. Dez 2007 12:43

Re: "TCustomForm" möglich?
 
Du könntest TForm ableiten (z.B. nach TCustomForm) und alle deine Formulare im Programm von dieser abgeleiteten Klasse ableiten statt von TForm.

RavenIV 6. Dez 2007 13:14

Re: "TCustomForm" möglich?
 
Also ich habe mir ein TMasterForm von TForm abgeleitet.
Darauf sind alle Komponenten, die von allen weiteren Form benötigt werden.
Alle anderen Form sind also Nachkommen von meinem TMasterForm.
Diese haben also auch die "Basis"-Komponenten drauf.

Delphi-Quellcode:
TFoZutrittskontrolle = class(TFoMasterForm)

Hansa 6. Dez 2007 13:24

Re: "TCustomForm" möglich?
 
Eine Form ist nur bedingt mit einer Komponente/Klasse zu vergleichen. Man kann nicht einfach
Delphi-Quellcode:
TForm2 = class (TForm1)
schreeiben, zumindest nicht ohne beträchtliche Nebenwirkungen. Benutze für so etwas besser die Objektablage.

RavenIV 6. Dez 2007 13:32

Re: "TCustomForm" möglich?
 
Zitat:

Zitat von Hansa
Eine Form ist nur bedingt mit einer Komponente/Klasse zu vergleichen. Man kann nicht einfach
Delphi-Quellcode:
TForm2 = class (TForm1)
schreeiben, zumindest nicht ohne beträchtliche Nebenwirkungen. Benutze für so etwas besser die Objektablage.

Mann, Mann, Mann. :shock: :o
Wird denn hier jedes Wort im Mund rumgedreht? :chat: :freak:

Ich habe meine Forms alls von TMasterForm abgeleitet.
Dadurch sieht der interface-Teil so aus:
Delphi-Quellcode:
unit Zutrittskontrolle;

interface

uses
  SysUtils, Classes,...

type
  TFoZutrittskontrolle = class(TFoMasterForm)
    LaCode: TcxLabel;
    ...
    BuAbbrechen: TButton;
    BuOK: TButton;
    ...
    EdTuere: TIB_Edit;
    ...
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    ...
  private
    fUnsaved: Boolean;
    ...
  public
    procedure ZLEventHandler(aEvent: TZLEvent); override;
  end;

var
  FoZutrittskontrolle: TFoZutrittskontrolle;

rawsoul 6. Dez 2007 13:41

Re: "TCustomForm" möglich?
 
Klingt alles sehr vielversprechend. Über Datei -> Neu -> Komponente wird es aber nicht funktionieren, nehme ich an? Zumindest kann ich TForm nicht in den "Vorfahrkomponenten" finden.

Hansa 6. Dez 2007 13:45

Re: "TCustomForm" möglich?
 
Weil es eben keine ist. Und Raven soll mal sagen, wo er aus dem Nichts die DFM für die "abgeleitete" Form her hat.

xaromz 6. Dez 2007 13:47

Re: "TCustomForm" möglich?
 
Hallo,

ich habe es zwar unter Delphi 2006 noch nicht hinbekommen, aber unter Delphi 7 konnte ich eine eigene Ableitung unter Neu->Delphi-Form unterbringen. Das hatte ich mir damals von den TntUnicode-Controls abgeschaut.

Gruß
xaromz

rawsoul 6. Dez 2007 14:00

Re: "TCustomForm" möglich?
 
Die Objektablage ist so ziemlich das, was ich mir vorgestellt hatte :) Hätte man auch selbst drauf kommen können ... :wall:

Danke an alle! =D

RavenIV 6. Dez 2007 14:46

Re: "TCustomForm" möglich?
 
Zitat:

Zitat von Hansa
Weil es eben keine ist. Und Raven soll mal sagen, wo er aus dem Nichts die DFM für die "abgeleitete" Form her hat.

Oh Mann, ist das so schwer zu kapieren?
Oder hab ich den Chinesischen Tastaturtreiber aktiviert?

Ich mache:
Datei -> Neu -> Weitere -> Vererbbare Elemente -> FoMasterForm -> Vererben ist angehakt -> OK
Dann bekomme ich ein neues Form, das von TMasterForm abgeleitet ist.

Muss ich erst ein Video drehen, oder ist das nun klar?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz