AGB  ·  Datenschutz  ·  Impressum  







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

VCL von Prog und DLL verbinden.

Offene Frage von "schu-r"
Ein Thema von schu-r · begonnen am 4. Jul 2006 · letzter Beitrag vom 4. Jul 2006
 
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: VCL von Prog und DLL verbinden.

  Alt 4. Jul 2006, 10:27
Hallo,
Zitat von schu-r:
Doch wie könnte ich aus der DLL ein Event im Hauptprogramm genereieren, der es auffordert ein Objekt zu erzeugen und mir zu geben?
Ist doch ganz einfach. Du übergibst der DLL die Prozeduradresse und die DLL ruft dann die Prozedur auf.
Besser wäre es aber, Du erstellst eine Klasse, die alle möglichen Objekte erzeugen kann, und übergibst das als Interface an die DLL.
z. B. so:

Interface-Unit (in Hauptprogramm und DLL verwenden):
Delphi-Quellcode:
type
  IVCLFactory = interface(IInterface)
    function GetButton: TButton;
    function GetLabel: TLabel;
  ...
  end;
Im Hauptprogramm:
Delphi-Quellcode:
type
  TVCLFactory = class(TInterfacedObject, IVCLFactory)
    function GetButton: TButton;
    function GetLabel: TLabel;
  ...
  end;
Beim Laden der DLL übergibst Du dann einfach das Interface:
Delphi-Quellcode:
var
  Factory: IVCLFactory;
begin
  Factory := TVCLFactory.Create;
  // DLL laden
  InitDLL(Factory); // <- hier eine exportierte Funktion aufrufen, der das Interface übergeben wird
end;
So würde ich das machen. Nicht vergessen, am Schluss in der DLL das Interface freizugeben (nil zuweisen).

Gruß
xaromz
  Mit Zitat antworten Zitat
 


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 01:34 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