AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Class Helper for Interface

Ein Thema von himitsu · begonnen am 16. Feb 2015 · letzter Beitrag vom 18. Feb 2015
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von himitsu
himitsu

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

AW: Class Helper for Interface

  Alt 17. Feb 2015, 09:19
Einen Implicit-Cast mit einem Record hatte ich zwar schon überlegt, aber die Lösung fand ich nicht gut, denn erstmal ist das für statische Methoden, auf den Interface-Typ nicht möglich
und dann kann man die Codevervollständigung auch gleich komplett vergessen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: Class Helper for Interface

  Alt 17. Feb 2015, 09:29
Wenn also Foo IFoo implementiert und ich dann IFoo nachträglich über einen Helper erweitere, z.B. mit der Methode Bar()... Was ist dann mit Foo? Implementiert Foo dann noch IFoo?
In meiner DLL:
Delphi-Quellcode:
type
  IFoo = Interface
     procedure FooMethod;
  end;

  Foo = Class (IFoo)
    public procedure FooMethod;
  end
Foo implementiert also IFoo. Gut.

Nun erweitere ich IFoo mit einem Helper
Delphi-Quellcode:
  IFooHelper = interface helper for IFoo
    procedure Bar;
  end;
...
var Foo : IFoo;
...
Foo.Bar; // das geht also.

Var oldFoo : Foo;

begin
  Foo.Bar // und das?
Preisfrage: Wo ist 'Bar' denn implementiert? Im Interface sicherlich nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.007 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: Class Helper for Interface

  Alt 17. Feb 2015, 09:38
Preisfrage: Wo ist 'Bar' denn implementiert? Im Interface sicherlich nicht...
Delphi-Quellcode:
IFooHelper = interface helper for IFoo
  procedure Bar;
end;
ist equivalent zu:

procedure Bar(const Self: IFoo); Damit kannste dir die Frage selbst beantworten.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Class Helper for Interface

  Alt 17. Feb 2015, 09:52
Die Funktion ist eben nicht im Interface, genauso wenig, wie bei den anderen Record/Class-Helpern oder so wie eine class procedure nicht im Objekt steckt, zu Welchem sie deklariert wurde.

Helper sollen nicht das Objekt/Interface selbst verändern, sondern nur darauf aufbauend eine Funktionen hinzufügen. (drum darf/kann man dort auch keine Felder deklarieren oder dynamic/virtual/abstract verwenden, weil das eine Veränderung erfordern würde)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.592 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Class Helper for Interface

  Alt 17. Feb 2015, 10:01
Wo wir gerade dabei sind, weiß jemand, ob es irgendwann Unterstützung für mehrere Helper für einen Typ geben wird? Würde mir gern meinen eigenen String-Helper basteln, der haut mir ja momentan aber den vom Delphi raus. Ich hätte aber gern beide, OHNE jetzt eine Kopie der Delphi-Variante pflegen zu müssen.
Sven Harazim
--
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: Class Helper for Interface

  Alt 17. Feb 2015, 10:05
Bestimmt. Die ersten Requests im QC sind erst seit knapp sieben Jahren offen. Sind also schätzungsweise noch etwa 4-6 Jahre.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Class Helper for Interface

  Alt 17. Feb 2015, 10:26
Delphi ist ja bald richtig erwachsen ... mit 35 sind dann wohl auch die letzten Jugendsünden behoben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Class Helper for Interface

  Alt 17. Feb 2015, 10:38
Ich will gar nicht wissen wie dann die Midlife Crisis aussieht.
  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
 
#19

AW: Class Helper for Interface

  Alt 17. Feb 2015, 10:58
Das mit den mehrfachen Helpern ist wohl angemacht, oder kann mir ansonsten jemand das hier erklären
Delphi-Quellcode:
type
   Bezeichnername = class|record helper [(Vorfahrenliste)] for TypBezeichnername
       MemberListe
     end;
Oder was ist da mit dieser Vorfahrenliste gemeint? Die Dokumentation schweigt sich darüber pauschal erst mal aus.
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 Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.007 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: Class Helper for Interface

  Alt 17. Feb 2015, 11:05
Das mit den mehrfachen Helpern ist wohl angemacht, oder kann mir ansonsten jemand das hier erklären
Delphi-Quellcode:
type
   Bezeichnername = class|record helper [(Vorfahrenliste)] for TypBezeichnername
       MemberListe
     end;
Oder was ist da mit dieser Vorfahrenliste gemeint? Die Dokumentation schweigt sich darüber pauschal erst mal aus.
class helper kannste voneinander erben lassen, record helper nicht.
Allen Bauer redet aber schon seit Jahren davon, dass sie zu einem rooted Type System wollen.
Man kann übrigens auch heute schon den Compiler entsprechend hacken, dass er record helper Vererbung zulässt (fragt mich jetzt aber nicht, wie - keine Ahnung)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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