Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einige Methoden in mehreren Klassen verwenden? (https://www.delphipraxis.net/44913-einige-methoden-mehreren-klassen-verwenden.html)

Pseudemys Nelsoni 26. Apr 2005 18:21


Einige Methoden in mehreren Klassen verwenden?
 
Moin,

wie kann ich mehrere Methoden in mehreren Klassen verwenden ohne das ich sie für jede neu schreiben muss?

Ich habe mir überlegt das ich ja die ganzen Methoden in einer eigenen Klasse haben könnte.... aber dann müsste ich ja jede Klasse die die Methoden braucht von dieser ableiten.... ich muss aber schon von TCLientSocket ableiten...und von 2 Klassen kann ich ja nicht ableiten, also wie könnte ich das machen? 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


jemand ne idee?

dizzy 26. Apr 2005 18:23

Re: Einige Methoden in mehreren Klassen verwenden?
 
Schon mal was von Vererbung gehört? :P

Ne im Ernst: Mach eine Oberklasse die all die Funktionen implemetiert die mehrfach vorkommen, und leite davon ab. Das ist einer der Hauptgründe dafür, dass man OOP überhaupt erst entwickelt hat ;).

Waldteufel 26. Apr 2005 18:29

Re: Einige Methoden in mehreren Klassen verwenden?
 
Hi.

Zitat:

Zitat von dizzy
Schon mal was von Vererbung gehört? :P

Ne im Ernst: Mach eine Oberklasse die all die Funktionen implemetiert die mehrfach vorkommen, und leite davon ab. Das ist einer der Hauptgründe dafür, dass man OOP überhaupt erst entwickelt hat ;).

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

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

SirThornberry 26. Apr 2005 18:33

Re: Einige Methoden in mehreren Klassen verwenden?
 
du könntest diese spezelle funktion als normale funktion anlegen und rufst dann in den Klassenfunktionen einfach die normale funktion auf
Delphi-Quellcode:
type
  TYourClass1 = class(irgendwas)
  private
    procedure dorigendwas;
  [...]
  TYourClass1 = class(irgendwas)
  private
    procedure dorigendwas;
  [...]
procedure doirgendwasproc;
begin
  showmessage('trallala');
end;

procedure TYourClass1.doirgendwas;
begin
  doirgendwasproc;
end;

procedure TYourClass2.doirgendwas;
begin
  doirgendwasproc;
end;

Khabarakh 26. Apr 2005 18:34

Re: Einige Methoden in mehreren Klassen verwenden?
 
Stehe ich gerade auf dem Schlauch oder spricht etwas gegen
Delphi-Quellcode:
type
  TMainClass = class(TClientSocket)
  [...]

  TClass1 = class(TMainClass)

...
?

dizzy 26. Apr 2005 18:41

Re: Einige Methoden in mehreren Klassen verwenden?
 
Zitat:

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

  TClass1 = class(TMainClass)

...
?

Wovon rede ich denn die ganze Zeit? :P

Khabarakh 26. Apr 2005 19:09

Re: Einige Methoden in mehreren Klassen verwenden?
 
Zitat:

Zitat von dizzy
Zitat:

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

  TClass1 = class(TMainClass)

...
?

Wovon rede ich denn die ganze Zeit? :P

Genau davon. Nur will niemand die Lösung wahrhaben :freak: .

Waldteufel 26. Apr 2005 19:13

Re: Einige Methoden in mehreren Klassen verwenden?
 
Hi.

Zitat:

Zitat von Khabarakh
Zitat:

Zitat von dizzy
Zitat:

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

  TClass1 = class(TMainClass)

...
?

Wovon rede ich denn die ganze Zeit? :P

Genau davon. Nur will niemand die Lösung wahrhaben :freak: .

@Khabarakh: Ja. Du stehst auf dem Schlauch... Geh mal bitte runter, ich muss nämlich noch die Blumen gießen... ;-)

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

dizzy 26. Apr 2005 20:00

Re: Einige Methoden in mehreren Klassen verwenden?
 
One word: Nope

Delphi-Quellcode:
type
  TMyMethodsAreHere = class(TClientSocket)
  private
    ...
  public
    procedure IchTuWas;
    function IchGebWas: Integer;
  end;

  TMyClass1 = class(TMyMethodsAreHere)
    .
    .
  end;

  TMyClass2 = class(TMyMethodsAreHere)
    .
    .
  end;

var
  x: TMyClass1;
  y: TMyClass2;

begin
  x := TMyClass1.Create(...);
  y := TMyClass2.Create(...);

  x.IchTuWas;
  y.IchGebWas;
end.
Packs in den Compiler und sieh selbst!

Waldteufel 26. Apr 2005 20:06

Re: Einige Methoden in mehreren Klassen verwenden?
 
Hi.

14 Words : Er will doch, dass er seine Klasse TMeineMethoden unabhängig von diese, speziellen Fall hat.

C++-Beispiel:

Code:
class MyMethods {
  private:
  protected:
  public:
    MyMethods() {};
    ~MyMethods() {};
   MachDies() { /* tätäää */ }
   MachDas() { /* tataaa */ }
};

class MeinSocket : public MyMethods, public TServerSocket {
  /* ... */
};

/* aber auch : */

class MeineTextverarbeitung : public MyMethods, public TTextInput {
  /* ... */ 
};
Da Pascal/ObjectPascal/Delphi aber keine Mehrfachvererbung hat geht das nicht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.
Seite 1 von 4  1 23     Letzte »    

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