Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#10

Re: Zugriff von Form auf Komponente der dll ?

  Alt 18. Mai 2010, 15:04
Hi,

das war es immernoch nicht, aber Danke für deine Bemühungen

Zitat:
Und hier klang es eben so, als wenn
eine Form in der EXE
und 2 Forms + Komponente in der DLL
miteinander reden sollen.
2 Forms + Komponente in der DLL. Das Außenstehende Programm, welches Später mit der Exe arbeitet ist dabei nun an dieser Stelle völlig zu vernachlässigen.

Betrachten wir die dll also als eigenstäniges komplettes Programm, so das die eigentliche .exe in der Dll später nur eine Startfunction aufruft und die Dll danach alleine für sich arbeitet.

Ich muss nun doch mal ebend etwas Beispielscode geben.

Delphi-Quellcode:
library DllExample;

uses
  SysUtils,
  Classes,
  ComServ,
  ComObj,
  OoMisc,
  AdPort,
  Dialogs,
  Windows,
  Forms,
  Optional_window in 'Optional_window.pas{Form2};

{$R *.res}

var
  ComPort: TApdComPort;
  Optionalwindow: TForm2;

// Hilfs Functions

// Dll Export Functions

function Plugin_init(): Boolean; stdcall;
begin
  ComPort := TApdComPort.Create(nil);
  Optionalwindow := TForm2.Create(Application);
end;

function Plugin_SendValue(value: string): boolean; stdcall;
begin
  // Code zum senden der Werte
end;

function Plugin_show_additionalwindow(): Boolean; stdcall;
begin
  Optionalwindow.ShowModal;
end;

exports
  Plugin_Sendvalue,
  Plugin_show_additionalwindow;

begin
  Plugin_init;
end.
Nun hat die eingebundene Form (Optional_window in 'Optional_window.pas' {Form2} ebend 2 Buttons und will damit diese Function hier nutzen:
function Plugin_SendValue(value: string): boolean; stdcall;

Und hier ist dann auch mein Problem. Im Falle eines Delphiprogramms und unter der Annahme DllExample ist eine Unit und keine Libary würde ich jetzt im ButtonOnClick der Optional_window auf UnitXYZ.Plugin_SendValue zugreifen können, was nun ja aber nicht geht da DllExample ebend keine Unit sondern eine libary ist.

Ich hoffe mein Problem ist nun etwas deutlicher geworden.

Mfg Yannic
  Mit Zitat antworten Zitat