AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Sprach-Feature wird nicht unterstützt: 'Benutzerdefiniertes Attribut
Thema durchsuchen
Ansicht
Themen-Optionen

Sprach-Feature wird nicht unterstützt: 'Benutzerdefiniertes Attribut

Ein Thema von Codehunter · begonnen am 9. Okt 2013 · letzter Beitrag vom 9. Okt 2013
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#1

AW: Sprach-Feature wird nicht unterstützt: 'Benutzerdefiniertes Attribut

  Alt 9. Okt 2013, 12:56
Ich glaub, ich hab mich da ein bisschen missverständlich ausgedrückt. Die Unit ist die gemeinsame Interface-Deklaration zwischen einem Hauptprogramm und einer DLL. Im Hauptprogramm will ich die GUID ja ausdrücklich als Konstante haben für QueryInterface usw.
Das kommt mir irgendwie bekannt vor... ich habe das allerdings gleich generisch gelöst. Kurzfassung:
Delphi-Quellcode:
class function TFoo.Get<T>(const AParams: IFooParams): T;
var
  TypeGuid: TGuid;
begin
  TypeGuid := GetTypeData(TypeInfo(T)).Guid;
  Supports((Instance as TFoo).Host.GetIntfImplementation(TypeGuid, AParams), TypeGuid, Result);
end;
Sprich ich rufe diesen Getter mit dem gewünschten Interface als Typparameter und den dazu passenden Initialisierungsparametern als Methodenparametern auf. Dann hole ich mir darin die Guid, frage beim Host an, bekomme ein Interface zurück und wandele es mit Supports in den korrekten Typ um.

So ist das nach außen komplett generisch gekapselt und ich brauche keine GUID-Konstanten oder ähnliche Krücken.
Sebastian Jänicke
AppCentral
  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 12:09 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