@bernau, es gibt mind. 3 Möglichkeiten eine Form in die sogenannte Objektablage zu verfrachten. 1. Rechtsklick auf Form -> Der Objektablage hinzufügen 2. oben auf Tools klicken -> Vorlagenbibliotheken ->
RAD-Studio Objektablage -> hinzufügen 3. wie von Dir gesagt, Toolpalette -> veerbbare Elemente usw. Das Ergebnis ist dann jedesmal, dass die Form in der Objektablage steht. Siehe Screenshot im Anhang. Bei Emba wird allerdings die Nomenklatur vernachlässigt. Das ist schon etwas undurchsichtig, dass die Forms aus der Objektablage dann betitelt sind unter "Objektgalerie". Aber egal, hinter dem Ganzen steckt lediglich folgendes :
Delphi-Quellcode:
unit Unit3;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs, Unit2;
type
TForm3 =
class(TForm2)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
Da sieht man, dass die Form3 ein Abkömmling von Form2 ist.
Und die sieht so aus :
Delphi-Quellcode:
unit Unit2;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs;
type
TForm2 =
class(TForm)
Button1: TButton;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
Obwohl die Form3 keinen Button deklariert : es gibt ihn aber. Der ist nämlich von Form2 geerbt. Ich kann den aber z.B. nur für Form3 verschieben. Um das Ganze zu verstehen muss man sich aber mal die DFMs ansehen :
Delphi-Quellcode:
object Form2: TForm2
Left = 0
Top = 0
Caption = 'Form2'
ClientHeight = 282
ClientWidth = 418
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 40
Top = 40
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
end
end
In der Form3-
DFM sieht man dann, was die Objektablage gemacht hat :
Delphi-Quellcode:
inherited Form3: TForm3
Caption = 'Form4'
ExplicitWidth = 434
ExplicitHeight = 320
PixelsPerInch = 96
TextHeight = 13
inherited Button1: TButton
Left = 168
Top = 152
ExplicitLeft = 168
ExplicitTop = 152
end
end
Da ist alles inherited. Der inherited Button ist nur deshalb vorhanden, weil ich den auf der Form3 verschoben habe. D.h. die Koordinaten sind für Form3 geändert in der
DFM. Das ist das was die Objektablage macht. Wenn ich nun z.B. ein neues Label auf die Form2 lege, dann hat Form3 automatisch auch eins usw.