Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Interfaces vergleichen... (https://www.delphipraxis.net/192189-interfaces-vergleichen.html)

Mavarik 27. Mär 2017 15:08

Interfaces vergleichen...
 
Hallo Zusammen!

Gibt es eine Möglichkeit eine Interface-Referencen zu vergleichen?
So wie in
Delphi-Quellcode:
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

stahli 27. Mär 2017 15:30

AW: Interfaces vergleichen...
 
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;

Jumpy 27. Mär 2017 15:32

AW: Interfaces vergleichen...
 
Geht das nicht mit Supports?

Stevie 27. Mär 2017 15:57

AW: Interfaces vergleichen...
 
Ich liebe Pseudo Code, der voll von Syntax errors ist :roll:

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.

Mavarik 27. Mär 2017 16:23

AW: Interfaces vergleichen...
 
Zitat:

Zitat von Stevie (Beitrag 1365659)
Ich liebe Pseudo Code, der voll von Syntax errors ist :roll:

Oje :pale: 3h Schlaf also doch zu wenig...

himitsu 27. Mär 2017 17:25

AW: Interfaces vergleichen...
 
Zitat:

Zitat von Stevie (Beitrag 1365659)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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