AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Polymorphie und Interfaces in Delphi

Ein Thema von Neutral General · begonnen am 3. Jun 2014 · letzter Beitrag vom 4. Jun 2014
Antwort Antwort
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#1

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 14:19
Zitat:
Man kommt da nur daran, wenn man die Interfaceinstanz auf den Vorfahren castet (als Typcast und nicht über Supports), wenn man weiß, daß dort etwas drin ist.
Das ist ein Spezialfall. Der Vorfahre alleine repräsentiert nur zwei alleinstehende, öffentliche Methoden (Setter und Getter, ohne zugehörige Property). Sobald Du über den Nachfahren gehst, erkennt Delphi, dass die Getter und Setter zu der Property gehören. In meinem Beispiel hättest Du auf dem Nachfahren auch den Zugriff auf die Methoden des Vorfahren (also wie auch bei normalen Methoden, ohne Properties)

Geändert von alda ( 3. Jun 2014 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#2

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:13
Hmmm, das ist jetzt komisch.

Delphi-Quellcode:
type
  IMyIntf = interface
    function Getter: Integer;
    procedure Setter(i: Integer);
    property Prop: Integer read Getter write Setter;
  end;
Ich weiß jetzt nicht mehr welche Delphi-Version das war, aber damals wurde der Getter und Setter nicht ausgeblendet, was XE jetzt aber macht.

Delphi-Quellcode:
type
  IInnerMyIntf = interface
    function Getter: Integer;
    procedure Setter(i: Integer);
  end;
  IMyIntf = interface(IInnerMyIntf)
    function Abc: Integer;
  end;
Dafür wird im IMyIntf der Getter/Setter jetzt doch angezeigt.

Hmmmmmmmmm.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#3

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:16
Zitat:
Ich weiß jetzt nicht mehr welche Delphi-Version das war, aber damals wurde der Getter und Setter nicht ausgeblendet, was XE jetzt aber macht.
Oh, das kann ich Dir auch nicht sagen. In meiner 2007er ist es schon so
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:25
Hmmm, das ist jetzt komisch.

Delphi-Quellcode:
type
  IMyIntf = interface
    function Getter: Integer;
    procedure Setter(i: Integer);
    property Prop: Integer read Getter write Setter;
  end;
Ich weiß jetzt nicht mehr welche Delphi-Version das war, aber damals wurde der Getter und Setter nicht ausgeblendet, was XE jetzt aber macht.

Delphi-Quellcode:
type
  IInnerMyIntf = interface
    function Getter: Integer;
    procedure Setter(i: Integer);
  end;
  IMyIntf = interface(IInnerMyIntf)
    function Abc: Integer;
  end;
Dafür wird im IMyIntf der Getter/Setter jetzt doch angezeigt.

Hmmmmmmmmm.
logischerweise, weil ja da nirgendwo eine property ist, die diese Methoden benutzt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#5

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:27
Damals wurde das halt auch angezeigt, obwohl es die Property dazu gab.

Das war auch der einzige Grund, warum ich überhaupt mit diesen vererbten Interfaces gearbeitet hatte.
Also kann ich mir nun den Spaß ersparen, was mir aber nicht aufgefallen ist, da ich das aus "Erfahreung" halt auch in aktuelleren Projekten gleich so gemacht hatte. Obwohl es jetzt zwar immernoch funktionierte, auch wenn aus einem anderem Grund.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Jun 2014 um 15:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:30
Damals wurde das halt auch angezeigt, obwohl es die Property dazu gab.
Aber zum Schluss hast du dich gewundert warum die jetzt angezeigt werden obwohl du keine property dafür hast
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#7

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 15:33
Jupp, denn damals wurde alles aus den Vorfahren nicht angezeigt, womit ich jetzt nicht damit gerechnet hätte, daß man die nun sieht, wenn der Property weg ist.

Getter/Setter von Property wurden im selben Interface angezeigt, aber nichts aus dem Vorfahren.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 16:12
Ich weiß jetzt nicht mehr welche Delphi-Version das war, aber damals wurde der Getter und Setter nicht ausgeblendet, was XE jetzt aber macht.
Dafür wird im IMyIntf der Getter/Setter jetzt doch angezeigt.

Das war auch der einzige Grund, warum ich überhaupt mit diesen vererbten Interfaces gearbeitet hatte.
Also kann ich mir nun den Spaß ersparen, was mir aber nicht aufgefallen ist, da ich das aus "Erfahreung" halt auch in aktuelleren Projekten gleich so gemacht hatte. Obwohl es jetzt zwar immernoch funktionierte, auch wenn aus einem anderem Grund.
Das hatten wir doch schon im Januar?!
Siehe: http://www.delphipraxis.net/178780-v...ml#post1245525

Meinen damaligen Post gelesen, aber nicht verstanden???
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#9

AW: Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 17:01
Alzheimer?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Jun 2014 um 08:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:24 Uhr.
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