Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Typumwandlung: Elemente der Unterklasse in Oberklasse (https://www.delphipraxis.net/215473-typumwandlung-elemente-der-unterklasse-oberklasse.html)

freimatz 15. Jul 2024 06:56

AW: Typumwandlung: Elemente der Unterklasse in Oberklasse
 
Zitat:

Zitat von DeddyH (Beitrag 1538769)
Vor 16 Jahren registriert und immer noch Anfänger?

Ich war mal in einer Firma, da war das Hauptprodukt in Delphi und auch schon recht alt. Als ich kam, gab es da keine Klassen, ausser die welche Delphi selbst erstellt. (Also nur Formuale, Reports, etc.).
Ich finds gut, dass Du enigma Dich damit beschäftigst.

Blup 15. Jul 2024 10:57

AW: Typumwandlung: Elemente der Unterklasse in Oberklasse
 
Versuch es mit einer virtuellen Testmethode.
Delphi-Quellcode:
TOberklasse = class(TObject)
protected
  function TestMethode: string; virtual;
public
  class procedure Test(AObj: TOberklasse);
  constructor Create;
end;

TUnterklasse = class(TOberklasse)
protected
  function TestMethode: string; override;
public
  Name: String;
  constructor Create;
end;

implementation

class procedure TOberklasse.Test(AObj: TOberklasse);
begin
  if Assigned(AObj) then
    ShowMessage(AObj.TestMethode);
end;

procedure TOberklasse.TestMethode;
begin
  Result := 'ClassName = ' + ClassName;
end;

procedure TUnterklasse.TestMethode;
const
  CRLF = #13#10;
begin
  Result :=
    inherited TestMethode + CRLF +
    'Name = ' + Name;
end;

jaenicke 15. Jul 2024 14:57

AW: Typumwandlung: Elemente der Unterklasse in Oberklasse
 
Zitat:

Zitat von enigma (Beitrag 1538742)
Kurzer Nachtrag: ich habe mehrere Unterklassen, die als Parameter für TOberklasse.Test(AObj: TOberklasse) verwendet werden können. Der Übersicht halber habe ich nur eine Unterklasse aufgeführt.

Warum wird denn die Instanz dort übergeben statt dort die Methode direkt aufzurufen? Blup hat dafür ja auch schon eine mögliche Lösung gepostet, aber mich würde die Motivation dahinter interessieren.

Ich vermute, dass du da einen Denkfehler hast, darum frage ich. Ich glaube, wenn wir verstehen, was du dort gedacht hast, können wir dir auch direkter helfen.

Und: Könntest du vielleicht konkreter etwas zum Hintergrund der Klassen sagen, nicht nur abstrakt als Beispiel? Es wäre einfacher, wenn klar wäre, worum es geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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-2025 by Thomas Breitkreuz