AGB  ·  Datenschutz  ·  Impressum  







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

Interfaces vergleichen...

Ein Thema von Mavarik · begonnen am 27. Mär 2017 · letzter Beitrag vom 27. Mär 2017
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#1

Interfaces vergleichen...

  Alt 27. Mär 2017, 16:08
Hallo Zusammen!

Gibt es eine Möglichkeit eine Interface-Referencen zu vergleichen?
So wie in TObject is TEdit ...

Beispiel:

Delphi-Quellcode:
unit Unit1;

interface

type
  IFoo1 = Interface
    ['{171A69B8-DF63-4E32-9431-8915EEAA2833}']
    Function Bar(Const AValue : String);
  end;

  IFoo2 = Interface
    ['{4F32C2C0-972F-45F0-9A7E-8FC18A2105D7}']
    Function Bar(Const AValue : String);
  end;

Procedure DoBar(Const AFace : IInterface;Const AValue : String);

implementation

Procedure DoBar(Const AFace : IInterface;Const AValue : String);
begin
  if AFace = IFoo1
    then (AFace as IFoo1).Bar(AValue)
    else (AFace as IFoo2).Bar(AValue);
end;

end.
Vielleicht stehe ich auch auf dem Schlauch.. (Generics fällt aus D2007)

Mavarik

Geändert von Mavarik (27. Mär 2017 um 17:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Interfaces vergleichen...

  Alt 27. Mär 2017, 16:30
Meinst Du "Supports"?
(Ich glaube es nicht wirklich, aber die Fragestellung klingt ja eindeutig...)

Delphi-Quellcode:
Function DoBar(Const AFace : IInterface;Const AValue : String);
var
  lFoo1: IFoo1;
  lFoo2: IFoo2;
begin
  if Supports(AFace, IFoo1, lFoo1) then
    lFoo1.Bar(AValue);
  if Supports(AFace, IFoo2, lFoo2) then
    lFoo2.Bar(AValue);
end;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Interfaces vergleichen...

  Alt 27. Mär 2017, 16:32
Geht das nicht mit Supports?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Interfaces vergleichen...

  Alt 27. Mär 2017, 16:57
Ich liebe Pseudo Code, der voll von Syntax errors ist

Wie schon gesagt, SysUtils.Supports.

Aber wäre durchaus mal ein Feature Request wert, den is Operator dahingehend zu erweitern, dass er das macht, was Supports macht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (27. Mär 2017 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Interfaces vergleichen...

  Alt 27. Mär 2017, 17:23
Ich liebe Pseudo Code, der voll von Syntax errors ist
Oje 3h Schlaf also doch zu wenig...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Interfaces vergleichen...

  Alt 27. Mär 2017, 18:25
Aber wäre durchaus mal ein Feature Request wert, den is Operator dahingehend zu erweitern, dass er das macht, was Supports macht.
Der AS macht das ja inzwischen schon.
$2B or not $2B
  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 04:25 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