Was ist das Äquivalent in Delphi 3 von Unterstützungen für Schnittstellen?
-
30-09-2019 - |
Frage
Ich habe eine Anwendung geschrieben in Delphi 3 unterstützen, und ich möchte in einigen Verbesserungen am Quellcode setzen, während auf die Gelegenheit warten sie auf eine neuere Version von Delphi zu aktualisieren. Eines der Dinge, die ich verwenden möchte ist Interfaces. Ich weiß, Delphi 3 bereits das Konzept der Schnittstellen hat, aber ich habe Probleme, herauszufinden, wie das Äquivalent von
zu tunif Supports(ObjectInstance, IMyInterface) then
Lösung
Schreiben Sie Ihre eigene Implementierung von „Unterstützt“ Funktion. In Delphi 2009 können Sie
function MySupports(const Instance: TObject; const IID: TGUID): Boolean;
var
Temp: IInterface;
LUnknown: IUnknown;
begin
Result:= (Instance <> nil) and
((Instance.GetInterface(IUnknown, LUnknown)
and (LUnknown.QueryInterface(IID, Temp) = 0)) or
Instance.GetInterface(IID, Temp));
end;
Test:
procedure TForm4.Button3Click(Sender: TObject);
var
Obj: TInterfacedObject;
begin
Obj:= TInterfacedObject.Create;
if MySupports(Obj, IUnknown) then
ShowMessage('!!');
end;
Hope es wird in Delphi arbeiten 3
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow