Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vererbung in Delphi (https://www.delphipraxis.net/66273-vererbung-delphi.html)

Christian18 27. Mär 2006 16:48


Vererbung in Delphi
 
Hallo,

ich bin gerade mal wieder dabei mich mit Objektorientierter Programmierung (kurz OOP) zu beschäftigen. Ich will eine Mutter Klasse erstellen in der alle Informationen wie zum Beispiel:

- Application Name
- Standard Fenster (Breite, Höhe, Position, ...)

fest deklariert werden. In der Sub Klasse sollen dann diese Eigenschaften genutzt werden können. Meine Frage ich jetzt, ob dies so üblich ist, oder ob man sowas anderes realisiert. Ich meine ich glaube ich spare mir sehr viel Tipp arbeit, wenn ich eine Sub Klasse habe und diese ein Fenster erzeugen soll.
So jetzt zur realisierung. Habt ihr da ein paar vorschläge für mich wie ich das machen kann???

Vielen Dank im vorraus!

Mit freundlichen Grüßen

Christian18

3_of_8 27. Mär 2006 16:53

Re: Vererbung in Delphi
 
IMHO eher unüblich, aber egal.

Delphi-Quellcode:
type
  TMyParentClass=class
  private
    {Nur in dieser Klasse sichtbar}
  protected
    {Nur in dieser und in abgeleiteten Klassen sichtbar}
  public
    {Immer sichtbar}
    procedure DoFoo; dynamic;
  published
    {Auch im Objektinspektor sichtbar}
  end;

  TMyChildClass=class(TMyParentClass)
  public
    procedure DoFoo; override;
  end;
So geht Ableitung/Vererbung

Delphi-Quellcode:
type
  TApplicationInfo=class
  public
    ApplicationName: String;
    StdX, StdY, StdWidth, StdHeight: Integer;
  end;

Christian18 27. Mär 2006 16:56

Re: Vererbung in Delphi
 
Hallo,

erst einmal vielen dank für die schnelle antwort. und was muss ich haben, damit die Sub Klasse zum Beispiel auf den AppNamen der Mutter Klasse zugreifen kann???

MFG Christian18

mkinzler 27. Mär 2006 17:01

Re: Vererbung in Delphi
 
Die Attribute der "Mutterklasse" sind direkt auch Attribute der "Kindklasse" wenn sich die Klassendefinition der Kindklasse in der selben Unit befindet. Sonst müssen die Attribute/Methoden protected sein

Khabarakh 27. Mär 2006 17:09

Re: Vererbung in Delphi
 
@3_of_8: Wenn du Beispielcode postest, solltest du ihn auch erklären ;) .
Z.B. warum du...
Zitat:

Zitat von 3_of_8
Delphi-Quellcode:
    procedure DoFoo; dynamic;

...hier dynamich statt virtual verwendest.
Zitat:

Delphi-Quellcode:
type
  TApplicationInfo=class
  public
    ApplicationName: String;
    StdX, StdY, StdWidth, StdHeight: Integer;
  end;

...und hier keine Propertys verwendest :shock: . und keinen F-Präfix.

Christian18 27. Mär 2006 17:20

Re: Vererbung in Delphi
 
Hallo,

eine Frage habe ich mal no. Wenn ich die Tochterklasse erzeuge, wird dann automatisch auch die Mutterklasse erzeugt???

MFG Christian18

mkinzler 27. Mär 2006 17:23

Re: Vererbung in Delphi
 
Nein, warum auch! Die Tochterklasse hat ja alle Eigenschaften geerbt.
BTW. du solltest mal dein Wissen über OOP/Vererbung überprüfen.

mkinzler 27. Mär 2006 18:19

Re: Vererbung in Delphi
 
Ich habe mir deine Frage nochmal durchgelesen
Zitat:

...In der Sub Klasse sollen dann diese Eigenschaften genutzt werden können.
Willst du nun Eigenschaften veerben, wie der Betreff vermuten lässt? Oder willst du eine klasse in eine andere einbinden (Sub-classing)?

3_of_8 27. Mär 2006 19:15

Re: Vererbung in Delphi
 
Zitat:

Zitat von Khabarakh
...hier dynamich statt virtual verwendest.

Dynamic, virtual, ich wollte es für einen Anfänger nicht nur noch komplizierter machen. Außerdem steht das in der OH.

Und Propertys, F-Präfix sind in diesem einfachen Fall auch unnötig. Theoretisch wäre ein Record an dieser Stelle eh besser.

Khabarakh 27. Mär 2006 19:29

Re: Vererbung in Delphi
 
Zitat:

Zitat von 3_of_8
Zitat:

Zitat von Khabarakh
...hier dynamich statt virtual verwendest.

Dynamic, virtual, ich wollte es für einen Anfänger nicht nur noch komplizierter machen.

Dann nimm den Standard, nämlich virtual ;) .

Zitat:

Und Propertys, F-Präfix sind in diesem einfachen Fall auch unnötig.
Tut mir leid, aber dann schreibst du nicht (sauber) objektorientiert. Und da der Autor genau das lernen will, sollte man solchen Prozedural-OOP-Mischmasch in Beispielcodes vermeiden.
Zitat:

Theoretisch wäre ein Record an dieser Stelle eh besser.
Stimmt, damit kann man so gut OOP üben :roll: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 1 von 2  1 2      

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