AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Einige Methoden in mehreren Klassen verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Einige Methoden in mehreren Klassen verwenden?

Ein Thema von Pseudemys Nelsoni · begonnen am 26. Apr 2005 · letzter Beitrag vom 29. Apr 2005
Antwort Antwort
Seite 2 von 4     12 34      
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 20:10
Einen Hauch von MultiInheritance gibt's mit den class helpers in D2005.

Eklig wird's wenn er ab 2 Punkten in 2 getrennten Ästen in seiner Hierarchie diese Funktionen haben will.

Da ich kaum glaube, dass dizzy die Lösung geliefert hat* wäre es mal ganz gut seine Meinung zu hören...

*nix gegen dich, ich denke nur einfach Pseudo ist nicht so ein Noob
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#12

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:00
Zitat von Waldteufel:
Da Pascal/ObjectPascal/Delphi aber keine Mehrfachvererbung hat geht das nicht!
Und das ist auch gut so.

So wie ich das Ganze sehe, steht der Waldteufel aufm Schlauch.

Der Unterschied zwischen:
Delphi-Quellcode:
type
  TMainClass = class(TClientSocket)
  [...]

  TClass1 = class(TMainClass)

...
und

Delphi-Quellcode:
type
  TMainClass = class(TClientSocket, TKlasseMitDenMethoden)
  [...]

...
ist doch quasi nicht vorhanden. Und wenn man diese Methoden nicht überall benötigt, schiebt man halt noch eine Klasse dazwischen.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#13

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:04
Hi.

Pseudemys Nelsoni will eine von seinem Beispiel unabhängige Klasse. Sowas wie ein Interface, nur mit bereits implementierten Methoden.

@Sanchez: Wenn ich dich richtig verstehe, ist bei dir TMainClass die Klasse mit den Methoden. Ja? Gut. Was ist, wenn ich TMainClass noch wo anders brauche, wo ich aber von TComboBox ableiten muss?
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#14

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:06
Ach Leute,

wieso hört ihr einander nicht zu? Die Lösung steht oben schon mehrfach, lest einfach mal und DENKT mit.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#15

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:08
Zitat von Waldteufel:
Was ist, wenn ich TMainClass noch wo anders brauche, wo ich aber von TComboBox ableiten muss?
Das hat Pseudo nicht gefragt. Warum sollte ich mir über Dinge den Kopf zerbrechen, um die es überhaupt nicht geht?
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#16

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:18
Zitat von Waldteufel:
Was ist, wenn ich TMainClass noch wo anders brauche, wo ich aber von TComboBox ableiten muss?
BTW: Würde ich in einem solchen Fall an einen gemeinsamen Vorfahren delegieren. Du hasts geschafft, dass ich mir doch den Kopf darüber zerbrochen habe

Also:

Delphi-Quellcode:
type TKlasseMitMethoden = class
  protected
    FObjekt: TVorfahrVonDenGewünschtenKlassen;
    procedure MachWasMitFObjekt;
...
  end;

  TKlasseMitComboBox = class(TKlasseMitMethoden)
  public
    constructor Create(_owner : TComponent);
...
  end;

  TKlasseMitIrgendeinemAnderenObjekt = class(TKlasseMitMethoden)
  public
    constructor Create(_owner : TComponent);
...
  end;
...

TKlasseMitComboBox.Create(_owner : TComponent);
begin
  FObjekt := TComboBox.Create(_owner);
end;

TKlasseMitComboBox.Create(_owner : TComponent);
begin
  FObjekt := TIrgendeinAnderesObjekt.Create(_owner);
end;
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#17

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:33
Moin,

ui da sind aber viele Posts .

Zitat:
Schon mal was von Vererbung gehört?
Gegenfrage: Hast du meinen Post richtig durchgelesen? (Ist nich böse gemeint, falls es sich so anhört)

Zitat:
@dizzy: Er hat doch gesagt, dass er schon von TClientSocket ableitet...
Genau

Zitat:
@Pseudemys Nelsoni: Das was du beschreibst, geht meines Wissens nur in C und C++ mit der Mehrfachvererbung. Pascal unterstützt nur Interfaces, die nur beschreiben, welche Funktionen/Prozeduren vorhanden sein müssen, diese aber nicht implementieren. Pech...
Das hört sich ganz und gar nicht gut an

Zitat:
du könntest diese spezelle funktion als normale funktion anlegen und rufst dann in den Klassenfunktionen einfach die normale funktion auf
Wenn es keine andere Lösung gibt, dann werd ich das wohl machen (müssen).

Zitat:
Stehe ich gerade auf dem Schlauch oder spricht etwas gegen
Quellcode: markieren
type
TMainClass = class(TClientSocket)
[...]

TClass1 = class(TMainClass)

...

?
Ja tust du. In deinem Beispiel hätte TMainClass wie auch TClass1 nämlich von TClientSocket geerbt. Bloss brauch ich das in letzterer Klasse kaum.

Zitat:
Wovon rede ich denn die ganze Zeit?
Das frage ich mich auch die ganze Zeit. Ich glaube ihr zwei versteht mich nicht *g*

Zitat:
Genau davon. Nur will niemand die Lösung wahrhaben
Oder niemand kann was mit ner falschen Lösung anfangen

Zitat:
Er will eine Klasse TMeineLieblingsmethoden erstellen und seine Klasse davon ableiten. Dummerweise MUSS seine Klasse aber auch von TClientSocket abgeleitet sein. Das lässt sich nur über Mehrfachvererbung lösen, die es aber in Delphi/Pascal/ObjectPascal nicht gibt. (<- Punkt!)
Genau darum gehts

Zitat:
Packs in den Compiler und sieh selbst!
Bei deinen Beispielen erben TMyClass1 und TMyClass2 aber AUCH von TClientSocket! Das ist total unnütz da ich in den anderen Klassen keinen ClientSocket brauche.

Zitat:
Da Pascal/ObjectPascal/Delphi aber keine Mehrfachvererbung hat geht das nicht!
Das ist ja dumm

Zitat:
Eklig wird's wenn er ab 2 Punkten in 2 getrennten Ästen in seiner Hierarchie diese Funktionen haben will.
Ich denke das was du da beschrieben hast ist das was ich vorhabe(hatte) Aber ich schreib nach den Quotes nochmal genau was ich meine, zumindest werde ich das versuchen

Zitat:
*nix gegen dich, ich denke nur einfach Pseudo ist nicht so ein Noob


Zitat:
wieso hört ihr einander nicht zu? Die Lösung steht oben schon mehrfach, lest einfach mal und DENKT mit.
Weil es nicht das ist was ich wollte.




Also nochmal: Gehen wir mal davon aus das ich eine Methoen-Klasse erstellt habe die ich in unterschiedlichen Klassen "einbinden" will.
Meinet wegen sieht sie so aus:

Delphi-Quellcode:
TMethodClass = class(TObject)
private
  function func1: Integer;
  function func2: Integer;
  function func3: Integer;
end;
So, der implementations-Teil ist natürlich auch geschrieben, aber den muss ich hier ja nicht mit schreiben

Nun habe ich meine Hauptklasse, sie ist von TClientSocket abgeleitet. So, da das nun so ist, wie kann ich da gleichzeitig von TMethodClass erben?

Wie ich bereits gelesen hab geht das nicht, das ist natürlich doof. Vielleicht hat ja noch jemand ne Idee, sonst übernehm ich wohl das von SirThornberry. Auch wenn mir das nichtmehr nach OOP aussieht

Danke an alle schonmal für die Antworten
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#18

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:49
@Pseudo: Hast du meinen letzten Beitrag gelesen? Ich schätze, diese Methode ist bei dir Anwendbar.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#19

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:57
Moin Sanchez,

jo habe ich

aber:

Zitat:
ein Feld der Methoden-Klasse in der Klasse möchte ich nicht, da ich die Methoden direkt so:

Instanz1.Methode1 aufrufen können möchte
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Einige Methoden in mehreren Klassen verwenden?

  Alt 26. Apr 2005, 21:58
@Pseudo: Wenn du das so wie in meinem Beispiel machst musst du ja auch nich unbedingt eine "globale" funktion aufrufen sondern könntest auch eine Klassenmethode aufrufen (also eine methode vor der class steht)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 05:01 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