![]() |
AW: Form mit prozeduren und funktionen als Vorlage speichern?
Moin bernau, ist das tatsächlich zu hoch ?
Der "schöne Günther" sagt das : Zitat:
Zitat:
Zitat:
Vermutlich liegt das an dem Wort "Objektablage". Für die Amis dürfte "Repository" genauso abstrakt rüberkommen. Warum nennen die das ganze Gebiet nicht einfach "Formular-Vererbung" ? Dann hätten ca. 95 % der Delphi Programmierer, die das nicht kennen, zumindest eine grobe Vorstellung davon, was das sein könnte. Davon würde wohl die Hälfte diese Technik dann auch verwenden. |
AW: Form mit prozeduren und funktionen als Vorlage speichern?
Zitat:
Also noch mal gaaanz langsam zum mitlesen. Es gibt Forms, die sind universell und die kann ich in vielen Projekten gebrauchen. Die Dinger kommen in die Objektablage. Dann gibt es Forms, die haben für ein Projekt spezielle Funktionen. Diese Funktionen möchte ich gerne vererben, damit andere Formulare diese verwenden können. Ich kann natürlich auch irgendwelche Komponenten drauf klatschen, damit diese direkt im abgeleiteten Form verwendet werden. Dazu lege ich das Form (Ich nenne es jetzt einfach mal WupptiForm) einfach ganz normal an und füge die Funktionen und/oder Komponenten hinzu. Dann auf der Toolpalette gaaaanz nach unten blättern (Achtung: Geht nur wenn du auf der Quellcode-Ansicht bist). Dort gibt es den Abschnitt (Bei Delphi 2007) "Delphi Projekte / Vererbbare Elemente". Dort werden alle Forms aufgelistet, die ich im Projekt angelegt habe. Dort suche ich die WupptiForm. Doppelklick drauf und schon habe ich ein neues Formular, welches vom Wupptiform abgeleitet ist. Perfekte Formvererbung. Nix Objektablage. Das Wuppti-Ding gehört für mich nicht in die Objektablage. Sonst habe ich nach dem zehnten Projekt die Objektablage zugemüllt. Nichts anderes habe ich in meinem ersten Post geschrieben. Nur etwas kürzer. Zitat:
Zitat:
Zitat:
|
AW: Form mit prozeduren und funktionen als Vorlage speichern?
Zitat:
Hansa: Du hast Fenstervererbung, OOP und die Repository in deinem Beitrag etwas missverständlich in einen Topf geworfen, das ist alles. Nun kann man daraus einen Worte-auf-die-Goldwaage-und-dann-im-Mund-verdrehen-Thread machen. Oder nicht. Konzentrier dich lieber auf OOP. Da gibt es noch genug zu lernen ;-) |
AW: Form mit prozeduren und funktionen als Vorlage speichern?
Zitat:
|
AW: Form mit prozeduren und funktionen als Vorlage speichern?
Liste der Anhänge anzeigen (Anzahl: 1)
@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:
Da sieht man, dass die Form3 ein Abkömmling von Form2 ist.
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. Und die sieht so aus :
Delphi-Quellcode:
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 :
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.
Delphi-Quellcode:
In der Form3-DFM sieht man dann, was die Objektablage gemacht hat :
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
Delphi-Quellcode:
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.
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 |
AW: Form mit prozeduren und funktionen als Vorlage speichern?
:wall: Ich geb's auf.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr. |
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