Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Package - einer Prozedur im Package einen Wert übergeben (https://www.delphipraxis.net/76574-package-einer-prozedur-im-package-einen-wert-uebergeben.html)

sminds 6. Sep 2006 14:12


Package - einer Prozedur im Package einen Wert übergeben
 
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.

CK_CK 6. Sep 2006 14:59

Re: Package - einer Prozedur im Package einen Wert übergeben
 
Ganz einfach: Du schreibst in der Hauptanwendung:
Delphi-Quellcode:
THallo = procedure;
//Müsste aber sein:
THallo = procedure(i:integer);
So müsste das klappen...

sminds 6. Sep 2006 15:04

Re: Package - einer Prozedur im Package einen Wert übergeben
 
Zitat:

Zitat von CK_CK
Ganz einfach: Du schreibst in der Hauptanwendung:
Delphi-Quellcode:
THallo = procedure;
//Müsste aber sein:
THallo = procedure(i:integer);
So müsste das klappen...

Super!!!! Danke, damit hast Du mir sehr geholfen.

Grüße,
sminds.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz