Hallo zusammen!
Ich habe eine Frage, weil ich nicht mehr weiterkomme. Ich bin dabei, eine
DLL mit Delphi zu erstellen, die integrierte Forms hat. Jetzt habe ich aber folgendes Problem: ich möchte von der Form aus eine Funktion oder Prozedur in der
DLL starten, aber ich weiss nicht wie ich auf diese Zugriff bekommen kann. Ich hoffe mir kann jemand helfen. Ich hab den Quelltext auch angehängt.
Code der
DLL selbst:
Delphi-Quellcode:
library DienstplanRDP_DLL;
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ComObj,
Frm_Info
in '
Frm_Info.pas'
{Frm_Test};
var
oXL: Variant;
{$R *.res}
procedure DLL_Init();
stdcall;
begin
oXL := GetActiveOleObject('
Excel.Application');
end;
procedure DLL_Terminate();
stdcall;
begin
oXL := Unassigned;
end;
procedure Test_Excel();
stdcall;
var
Tmp:
String;
begin
Frm_Test := TFrm_Test.Create(
nil);
oXL.ActiveSheet.Cells[2, 1] := '
Test DLL';
Tmp := oXL.ActiveSheet.Cells[1,1];
ShowMessage(Tmp);
Frm_Test.ShowModal;
end;
procedure Test_Frm(Tmp:
String);
stdcall;
begin
ShowMessage(Tmp);
end;
exports
DLL_Init, DLL_Terminate, Test_Excel, Test_Frm;
begin
end.
Code des Forms, integriert in das Projekt für die
DLL:
Delphi-Quellcode:
unit Frm_Info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFrm_Test =
class(TForm)
Btn_OK: TButton;
Txt_Box1: TEdit;
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure Btn_OKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Test: TFrm_Test;
implementation
{$R *.dfm}
procedure TFrm_Test.Btn_OKClick(Sender: TObject);
begin
// Hier sollte der Aufrauf einer Funktion stehen!?
Frm_Test.Close;
end;
procedure TFrm_Test.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
end.
Ich hoffe von Euch hat jemand eine Idee
Vielen Dank und Gruß
Andreas