Einzelnen Beitrag anzeigen

AGuther

Registriert seit: 29. Nov 2004
2 Beiträge
 
Delphi 2005 Personal
 
#1

Zugriff auf DLL Procedure von DLL interner Form

  Alt 8. Jun 2005, 00:08
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
  Mit Zitat antworten Zitat