Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Form mit prozeduren und funktionen als Vorlage speichern? (https://www.delphipraxis.net/182393-form-mit-prozeduren-und-funktionen-als-vorlage-speichern.html)

Hansa 14. Apr 2015 21:57

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 von Der schöne Günther (Beitrag 1276794)
Ist das nicht genau das richtige für die "Objektablage"?

Daraufhin kam von Dir diese Antwort :

Zitat:

Zitat von bernau (Beitrag 1276795)
Wenn diese Vorlage nur in einem Projekt verwendet wird, dann nicht.

Ich erkläre daraufhin, dass die Formular-Vererbung sehr wohl bereits ab 2 Formularen Sinn macht und warum und auch in nur einem Projekt. Wo liegt da das Verständnisproblem ?

Zitat:

Zitat von bernau (Beitrag 1297725)
Wo habe ich etwas von Copy/Paste geschrieben? Bei mir wird alles abgeleitet und nichts kopiert.

Also nochmals : der erste Absatz bezieht sich auf Deine Aussage, die Objektablage sei nur für projektübergreifende Forms. Dass Du copy/paste verwendest steht doch nirgends. Jedenfalls nichts von mir. Seltsam ist allerdings dann doch folgendes : du sagst jetzt . "Bei mir wird alles abgeleitet" und kennst die Objektablage anscheinend nicht ? Zumindest aus der Praxis nicht ?

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.

bernau 14. Apr 2015 23:22

AW: Form mit prozeduren und funktionen als Vorlage speichern?
 
Zitat:

Zitat von Hansa (Beitrag 1297752)
Moin bernau, ist das tatsächlich zu hoch ?

Nö. ;-)

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 von Hansa (Beitrag 1297752)
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.

In beiden Fällen ist es Formular-Vererbung. Einmal mit Objektablage/Repository und einmal ohne.

Zitat:

Zitat von Hansa (Beitrag 1297752)
Dass Du copy/paste verwendest steht doch nirgends. Jedenfalls nichts von mir.

Och. Folgendes hast du geschrieben:

Zitat:

Zitat von Hansa (Beitrag 1297752)
Alternativen : 1. cut and paste. im OOP Zeitalter : bekloppt.

Das hast du als alternative angegeben, wenn man die Objektablage nicht verwendet. Habe ich dann auf mich bezogen. Aber p80286 hat mich schon aufgeklärt.

Dejan Vu 15. Apr 2015 06:46

AW: Form mit prozeduren und funktionen als Vorlage speichern?
 
Zitat:

Zitat von bernau (Beitrag 1297756)
Zitat:

Zitat von Hansa (Beitrag 1297752)
Dass Du copy/paste verwendest steht doch nirgends. Jedenfalls nichts von mir.

Och. Folgendes hast du geschrieben:
Zitat:

Zitat von Hansa (Beitrag 1297752)
Alternativen : 1. cut and paste. im OOP Zeitalter : bekloppt.


Hansa hat recht. copy <> cut :stupid:

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 ;-)

bernau 15. Apr 2015 09:10

AW: Form mit prozeduren und funktionen als Vorlage speichern?
 
Zitat:

Zitat von Dejan Vu (Beitrag 1297759)
Hansa hat recht. copy <> cut :stupid:

Und ich zitiere das auch noch :oops:

Hansa 15. Apr 2015 14:49

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

bernau 15. Apr 2015 16:32

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.
Seite 2 von 2     12   

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