AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Mehrfachvererbung in Delphi --> Wie umgehen???
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrfachvererbung in Delphi --> Wie umgehen???

Ein Thema von Christian18 · begonnen am 13. Jun 2006 · letzter Beitrag vom 14. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:38
Hallo,

ich habe ein kleines Problem mit Delphi und der Mehrfachvererbung. Ich habe ebend in der Delphi Hilfe gelsen, dass Delphi leider keine Mehrfachvererbung unterstützt. Ich habe mit aber eine Klasse geschrieben, die ich von TForm und TFrame ableiten muss. Wie kann ich das jetzt machen???

MFG Christian18
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:41
warum musst du von beiden ableiten? Was willst du also bezwecken. Wie du selbst schon festgestellt hast ist Mehrfachvererbung mit Delphi nicht möglich. Daher müssen wir wissen was du erreichen willst um dir einen Umweg nennen zu können.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:42
Hmm, also wenn du nur die Funktionalität brauchst, könntest du es mit Selektion lösen.

Ansonsten: Nicht möglich.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:45
Delphi erlaubt nur die (Mehrfach-)Vererbung von Interfaces. Eine Möglichkeit wäre die Kombination von Interface und Implementierung durch ein Memberobjekt. Aber sinnvoller wäre es das Vererbungsshema anzupassen.
Markus Kinzler
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#5

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:47
Also,

wenn ich in Delphi ein neues Fenster haben möchte, dann erstelle ich mir ein neues Formular. Automatisch wird dann auch eine neue Klasse erstellt. Diese Klasse wird abgeleitet von TForm. Statt TForm schreibe ich dann TProgramm hin. Das ist die Klasse die ich selber geschrieben habe. Die Klasse TProgramm wird von TForm abgeleitet. Das funktionierte alles super. Jetzt muss ich aber auch noch ein Frame in meinem Projekt einbinden. Dieses Frame benötigt Proceduren und Functionen die ich in TProgramm deklariert habe. Da ich bei einer Klasse die von TFrame abgeleitet ist, nicht einfach durch TProgramm ersetzen kann, bräuche ich die Mehrfachvererbung. Dann würde ich nämlich meine Klasse TProgramm von TForm und TFrame ableiten. Da dies nicht funktioniert, habe ich jetzt ein Problem. Wie kann ich dieses lösen???

MFG Christian18
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:49
Warum setzt du dann nicht an einer höheren Stelle an?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:54
Instantiiere dir deinen Frame und greife einfach von der Form auf drauf zu.
Oder deklariere dir in ner anderen Unit deine von TFrame abgeleitete Klasse, in deinem TProgramm erstellst du ein Feld Frame, das deine von TFrame abgeleitete Klasse enthält, und bei OnCreate instantiierst du den Frame.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#8

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 16:58
Hallo,

ja das könnte ich natürlich machen. Dann würde ich eine neue Klasse deklarieren. und die Methode die ich für die Frames brauche, würde ich dann in die neue Klasse packen. Das ist ja alles wunder schön, aber leider habe ich dann redundanzen die ich eigentlich vermeiden will. Wenn es sich zum beispiel um eine Mthoder getVersion handelt. Dann müsste ich die Version an zwei stellen ändern. Das will ich ja gerade nicht.

MFG Christian18
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 17:03
Zitat:
Das ist ja alles wunder schön, aber leider habe ich dann redundanzen die ich eigentlich vermeiden will.
Warum den das die Implementierung liegt doch in TProgramm

TProgramm <- TFrame
TMyForm <- TForm

TmyForm.frame: TProgramm;

oder du setzt wie gesagr höher im Vererbungsschema an, so daß wieder beide (TMyFrame/TmyForm) von TProgramm erben.
Markus Kinzler
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#10

Re: Mehrfachvererbung in Delphi --> Wie umgehen???

  Alt 13. Jun 2006, 17:06
wie heißt den die Klasse im Vererbungsschema??? Also ich meine die eine Hierarchieebene höher ist??? Ist das TWinControl??? Meinst du diese???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
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