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

Delphi控件源码

开发平台:

Delphi

  1. unit CallForm;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, Spin, ExtCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     BtnDouble: TButton;
  9.     SpinEdit1: TSpinEdit;
  10.     Label1: TLabel;
  11.     BtnTriple: TButton;
  12.     Label2: TLabel;
  13.     SpinEdit2: TSpinEdit;
  14.     BtnDoubleString: TButton;
  15.     BtnDoublePChar: TButton;
  16.     EditSource: TEdit;
  17.     EditDouble: TEdit;
  18.     Label3: TLabel;
  19.     Label4: TLabel;
  20.     Bevel1: TBevel;
  21.     Bevel2: TBevel;
  22.     procedure BtnDoubleClick(Sender: TObject);
  23.     procedure BtnTripleClick(Sender: TObject);
  24.     procedure BtnDoubleStringClick(Sender: TObject);
  25.     procedure BtnDoublePCharClick(Sender: TObject);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.   end;
  31. var
  32.   Form1: TForm1;
  33. implementation
  34. {$R *.DFM}
  35. {functions of the Delphi DLL}
  36. function Double (N: Integer): Integer;
  37.   stdcall; external 'FIRSTDLL.DLL';
  38. function Triple (N: Integer): Integer;
  39.   stdcall; external 'FIRSTDLL.DLL';
  40. function DoubleString (S: string; Separator: Char): string;
  41.   stdcall; external 'FIRSTDLL.DLL';
  42. function DoublePChar (BufferIn, BufferOut: PChar;
  43.   BufferOutLen: Cardinal; Separator: Char): LongBool;
  44.   stdcall; external 'FIRSTDLL.DLL';
  45. procedure TForm1.BtnDoubleClick(Sender: TObject);
  46. begin
  47.   SpinEdit1.Value := Double (SpinEdit1.Value);
  48. end;
  49. procedure TForm1.BtnTripleClick(Sender: TObject);
  50. begin
  51.   SpinEdit2.Value:= Triple (SpinEdit2.Value);
  52. end;
  53. procedure TForm1.BtnDoubleStringClick(Sender: TObject);
  54. begin
  55.   // call the DLL function directly
  56.   EditDouble.Text :=
  57.     DoubleString (EditSource.Text, ';');
  58. end;
  59. procedure TForm1.BtnDoublePCharClick(Sender: TObject);
  60. var
  61.   Buffer: string;
  62. begin
  63.   // make the buffer large enough
  64.   SetLength (Buffer, 1000);
  65.   // call the DLL function
  66.   if DoublePChar (PChar (EditSource.Text), PChar (Buffer), 1000, '/') then
  67.     EditDouble.Text := Buffer;
  68. end;
  69. end.