Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Klassentyp auf Interface-Implementierung prüfen (https://www.delphipraxis.net/198902-klassentyp-auf-interface-implementierung-pruefen.html)

Dennis07 8. Dez 2018 23:51

Klassentyp auf Interface-Implementierung prüfen
 
Hallo,
mal ne Frage: Es gibt ja
Delphi-Quellcode:
Supports()
, das unterstützt aber nur Instanzen. Ich suche jetzt schon ne weile eine Funktion, die das selbe auch für Klassentypen anbietet.
Irgendwer eine Idee?

Schokohase 8. Dez 2018 23:55

AW: Klassentyp auf Interface-Implementierung prüfen
 
Delphi-Referenz durchsuchenSupports kann mehr
Delphi-Quellcode:
function Supports(const Instance: IInterface; const IID: TGUID; out Intf): Boolean;
function Supports(const Instance: TObject; const IID: TGUID; out Intf): Boolean;
function Supports(const Instance: IInterface; const IID: TGUID): Boolean;
function Supports(const Instance: TObject; const IID: TGUID): Boolean;
function Supports(const AClass: TClass; const IID: TGUID): Boolean;

Dennis07 9. Dez 2018 00:32

AW: Klassentyp auf Interface-Implementierung prüfen
 
Zitat:

Zitat von Schokohase (Beitrag 1420395)
Delphi-Quellcode:
function Supports(const AClass: TClass; const IID: TGUID): Boolean;

Haha, da hat mein CodeInsight mal wieder rumgesponnen. Danke, wurde mir nicht angezeigt! ;)

Uwe Raabe 9. Dez 2018 07:05

AW: Klassentyp auf Interface-Implementierung prüfen
 
Zitat:

Zitat von Dennis07 (Beitrag 1420396)
Haha, da hat mein CodeInsight mal wieder rumgesponnen. Danke, wurde mir nicht angezeigt! ;)

Nichts oder nur das erste overload? Die anderen sieht man erst wenn man die öffnende Klammer eingegeben hat.

Dennis07 9. Dez 2018 23:24

AW: Klassentyp auf Interface-Implementierung prüfen
 
Weiß ich gerade nicht mehr. Jo, leider zeigt er nicht direkt alle Überladungen an, eine Sache, die mich an Delphi schon wirklich abnervt.

jaenicke 10. Dez 2018 09:13

AW: Klassentyp auf Interface-Implementierung prüfen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Dennis07 (Beitrag 1420430)
Weiß ich gerade nicht mehr. Jo, leider zeigt er nicht direkt alle Überladungen an, eine Sache, die mich an Delphi schon wirklich abnervt.

Sieht bei mir so aus:
Anhang 50413

Uwe Raabe 10. Dez 2018 09:43

AW: Klassentyp auf Interface-Implementierung prüfen
 
Zitat:

Zitat von Dennis07 (Beitrag 1420430)
Weiß ich gerade nicht mehr. Jo, leider zeigt er nicht direkt alle Überladungen an, eine Sache, die mich an Delphi schon wirklich abnervt.

Du meinst im ersten Fenster, wenn der Methodenname vervollständigt werden soll? Dort ist das Unterdrücken der Overloads durchaus eine gute Sache. Wie lang würde diese Liste manchmal sein, wenn immer aller Overloads mit angezeigt werden. Bei manchen Methoden ist ja schon die reine Liste der Overloads relativ unübersichtlich.

Konkretes Beispiel: Bei der Verwendung von CodeSite öffnet die Programmierhilfe bei der Eingabe von
Delphi-Quellcode:
CodeSite.Send
in einem scrollbaren Popup eine Auto-COmplete-Liste von 47 Methoden, die alle mit Send beginnen. Gibt man nun hinter dem Send eine öffnende Klammer bietet die aktive Code-Parameter Option (Das ist eine andere Funktion als die oben genannte Programmierhilfe) ein Hint-Fenster mit 48 Overloads der Send-Methode an. Würden die Overloads bereits in der Programmierhilfe angezeigt werden, müsste ich erst in 170 Einträgen den passenden Aussuchen, wobei ich die meiste Zeit wohl nie mehr als zwei verschiedene Methodennamen gleichzeitig sehen könnte.

Wenn jemand kein CodeSite benutzt, mag er das obige Beispiel mal an
Delphi-Quellcode:
TStream
und Write/WriteData ausprobieren. Ist nicht ganz so krass, aber macht es ebenso deutlich.

Ich finde, das aktuelle Verhalten ist komfortabel und praxisorientiert. Es soll darum auch bitte so bleiben.

dummzeuch 10. Dez 2018 11:07

AW: Klassentyp auf Interface-Implementierung prüfen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1420445)
Zitat:

Zitat von Dennis07 (Beitrag 1420430)
Weiß ich gerade nicht mehr. Jo, leider zeigt er nicht direkt alle Überladungen an, eine Sache, die mich an Delphi schon wirklich abnervt.

Ich finde, das aktuelle Verhalten ist komfortabel und praxisorientiert. Es soll darum auch bitte so bleiben.

Stimme zu, aber ich fände es nett, wenn man erkennen könnte, dass es Overloads gibt.

jaenicke 10. Dez 2018 11:44

AW: Klassentyp auf Interface-Implementierung prüfen
 
Zitat:

Zitat von dummzeuch (Beitrag 1420454)
Stimme zu, aber ich fände es nett, wenn man erkennen könnte, dass es Overloads gibt.

Vorschläge? ;-)

Ich finde das an der Stelle nicht wichtig, fände einen dezenten Hinweis aber auch gut. Aber wie könnte der aussehen ohne dabei unnötig Platz zu benötigen? Und so, dass er trotzdem intuitiv verständlich ist.

stahli 10. Dez 2018 11:55

AW: Klassentyp auf Interface-Implementierung prüfen
 
"MyProcedure(...)"?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Seite 1 von 2  1 2      

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