init main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, reinit;
type
Tfrmmain =
class(TForm)
Label1: TLabel;
edzahl1: TEdit;
edzahl2: TEdit;
Label2: TLabel;
Label3: TLabel;
edzahl3: TEdit;
Label4: TLabel;
StatusBar1: TStatusBar;
Timer1: TTimer;
mDLLcontrol: TMemo;
Label5: TLabel;
mloesungen: TMemo;
Label6: TLabel;
bitend: TBitBtn;
btcall: TButton;
procedure Timer1Timer(Sender: TObject);
procedure btcallClick(Sender: TObject);
procedure bitendClick(Sender: TObject);
private
{ Private-Deklarationen }
//Steuerungsvariable für DLL
hDLL: THandle;
public
{ Public-Deklarationen }
end;
type
TBerechnung =
Function(zahl1, zahl2, zahl3: double): double;
stdcall;
var
frmmain: Tfrmmain;
pBerechnung : TBerechnung;
implementation
{$R *.dfm}
procedure Tfrmmain.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[1].Text:= timetostr(time);
end;
procedure Tfrmmain.btcallClick(Sender: TObject);
var wert1, wert2, wert3: double;
error1, error2, error3: integer;
begin
val(edzahl1.Text, wert1, error1);
val(edzahl2.Text, wert2, error2);
val(edzahl3.Text, wert3, error3);
if (error1 = 0)
and (error2 = 0)
and (error3= 0)
then
begin
//DLL dynamisch laden
hDLL:= LoadLibrary ('
C:\DLL\Formel.dll');
if hDLL <> 0
then
begin
pBerechnung:= GetProcAddress(hDLL, '
berechnen');
statusbar1.Panels[0].Text:= '
DLL erfolgreich geladen';
end
else
begin
Showmessage('
Laden der DLL Formel.dll fehlfeschlagen');
exit;
end;
//Funktion aus der DLL aufrufen
pberechnung(wert1, wert2, wert3);
statusbar1.Panels [0].Text:= '
Funktion in der DLL erfolgreich ausgeführt';
//DLL wieder entladen und Ressoucen wieder freigeben
if hDLL <> 0
then
begin
FreeLibrary(hDLL);
pberechnung :=
NIL;
statusbar1.Panels[0].Text := '
Bibiliothek erfolgreich freigegeben';
end;
end;
end;
procedure Tfrmmain.bitendClick(Sender: TObject);
begin
close;
end;
end.