DynaForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:1k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit DynaForm;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, Spin;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     Edit1: TEdit;
  10.     Label1: TLabel;
  11.     SpinEdit1: TSpinEdit;
  12.     Label2: TLabel;
  13.     procedure Button1Click(Sender: TObject);
  14.   private
  15.     { Private declarations }
  16.   public
  17.     { Public declarations }
  18.   end;
  19. var
  20.   Form1: TForm1;
  21. implementation
  22. {$R *.DFM}
  23. type
  24.   TIntFunction = function (I: Integer): Integer; stdcall;
  25. const
  26.   DllName = 'Firstdll.dll';
  27. procedure TForm1.Button1Click(Sender: TObject);
  28. var
  29.   HInst: THandle;
  30.   FPointer: TFarProc;
  31.   MyFunct: TIntFunction;
  32. begin
  33.   HInst := SafeLoadLibrary (DllName);
  34.   if HInst > 0 then
  35.   try
  36.     FPointer := GetProcAddress (HInst,
  37.       PChar (Edit1.Text));
  38.     if FPointer <> nil then
  39.     begin
  40.       MyFunct := TIntFunction (FPointer);
  41.       SpinEdit1.Value := MyFunct (SpinEdit1.Value);
  42.     end
  43.     else
  44.       ShowMessage (Edit1.Text + ' DLL function not found');
  45.   finally
  46.     FreeLibrary (HInst);
  47.   end
  48.   else
  49.     ShowMessage (DllName + ' library not found');
  50. end;
  51. end.