Montag, 10. August 2015

Fremdkomponenten unabhängig von der Delphiversion benutzen.

Wer kennt es nicht, die neue Delphi Version kommt raus und die bevorzugten Komponenten sind entweder nicht für die neue Version geeignet oder müssen - weil nur DCU vorhanden - wieder neu gekauft werden.

Natürlich gibt es oft gute Gründe eine neue oder aktualisierte Version zu kaufen, aber wenn ich die neue Features nicht benötige? Warum soll ich dann wieder Geld ausgeben?

Die Lösung heißt: Mach doch einfach eine DLL daraus...

Das einfachste ist - die Funktionen die benötigt werden mit einem Interface wrappen - und dieses dann mit einem Funktionsaufruf auf die DLL initialisieren.

Die DLL sieht dann ganz einfach aus.

library fuerAlleDelphiVersionen;

Type
  TMyLibrary = class(TInterfacedObject,IMyLibrary)
    private
      FMyLibrary : TFremdComponente;
    Public
       Constructor Create;
       Destructor Destroy;override;
      // Meine Funktionen...
  end;

Procedure GetInterface(out TheInterface:IMyLibrary);stdcall;
begin
  TheInterface := TMyLibrary.Create;
end;

Constructor TMyLibrary.Create;
begin
  Inherited;
  FMyLibrary := TFremdComponente.Create;
end;

Destructor TMyLibrary.Destroy;override;
begin
  FMyLibrary.Free;
  Inherited;
end;

Exports
  GetInterface;

begin
end.