Einzelnen Beitrag anzeigen

sminds

Registriert seit: 16. Jun 2003
Ort: Südtirol
21 Beiträge
 
#1

Package - einer Prozedur im Package einen Wert übergeben

  Alt 6. Sep 2006, 15:12
Versuche seit kurzer Zeit meine Applikation durch Packages Modular aufzubauen. Habe es allerdings bisher nicht geschafft,
einer Prozedur in einer Unit im Package einen Wert mitzugeben.

im PACKAGE
Delphi-Quellcode:
procedure Hallo(i:integer);
begin
  showmessage(inttostr(i));
end;

exports
  //Hallo(i:integer); [i]// Error: ',' or ';' expected but '(' found...[/i]
  Hallo;
end.
in der Hauptunit, die das Package aufruft
Delphi-Quellcode:
unit Unit_main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls;
type
  THallo = procedure;
  TForm1 = class(TForm)
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    packagemodule:hmodule;
    Hallo:THallo;
    procedure PackageLoad;
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}

procedure tform1.PackageLoad;
begin
  PackageModule := LoadPackage('package1.bpl');
  if packagemodule<>0 then
     try
       @Hallo:=GetProcAddress(PackageModule,'Hallo');
     except
       ShowMessage('Package not found');
     end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if packagemodule=0 then packageload;
  //if assigned(Hallo) then Hallo(1); [i]//No parameters expected... ???[/i]
  if assigned(Hallo) then Hallo;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if packagemodule<>0 then
     unloadpackage(packagemodule);
end;

end.
Wie kann ich der Procedur Hallo den Wert übergeben?

MfG,
sminds.
  Mit Zitat antworten Zitat