⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.~pas

📁 防火墙c语言包过滤源码防火墙c语言包过滤源码防火墙c语言包过滤源码
💻 ~PAS
字号:
unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

{$DEFINE DYNAMIC_CALL}


type
  TfrmFilterSample = class(TForm)
    edKey: TEdit;
    btnAdd: TButton;
    btnDelete: TButton;
    lbKeyList: TListBox;
    btnApply: TButton;
    btnDisable: TButton;
    Label1: TLabel;
    procedure btnAddClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnApplyClick(Sender: TObject);
    procedure btnDisableClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    iModule :integer;
  public
    { Public declarations }
  end;

var
  frmFilterSample: TfrmFilterSample;

implementation

{$R *.dfm}

{$IFDEF DYNAMIC_CALL}
  type
    TAddFilterKey = function(Port :Smallint; Key :PChar): integer; stdcall ;
  type
    TDeleteFilter = function(): integer;stdcall  ;
{$ELSE}
  function DeleteFilter(): integer; cdecl; external 'Filter.dll'
  function AddFilterKey(Port :Smallint; Key: PChar): Integer; cdecl;external 'Filter.dll'
{$ENDIF}

procedure TfrmFilterSample.btnAddClick(Sender: TObject);
begin
lbKeyList.Items.Add(edKey.Text);
end;

procedure TfrmFilterSample.btnDeleteClick(Sender: TObject);
begin
     lbKeyList.DeleteSelected;
end;

procedure TfrmFilterSample.btnApplyClick(Sender: TObject);
var
  i, num :integer;
  S :string;
{$IFDEF DYNAMIC_CALL}
  AddFilterKey :TAddFilterKey;
{$ENDIF}
begin
{$IFDEF DYNAMIC_CALL}
  @AddFilterKey :=GetProcAddress(iModule, PChar('AddFilterKey'));
  if @AddFilterKey=nil then Exit;
{$ENDIF}

  num :=lbKeyList.Items.Count;
  for i:=0 to num - 1 do
  begin
    S :=lbKeyList.Items.Strings[i];
    AddFilterKey(80, PChar(S));
  end;
end;

procedure TfrmFilterSample.btnDisableClick(Sender: TObject);
{$IFDEF DYNAMIC_CALL}
var
   DeleteFilter :TDeleteFilter;
{$ENDIF}
begin
{$IFDEF DYNAMIC_CALL}
  @DeleteFilter :=GetProcAddress(iModule, PChar('DeleteFilter'));
  if @DeleteFilter<>nil then
{$ENDIF}

     DeleteFilter();
end;

procedure TfrmFilterSample.FormCreate(Sender: TObject);
begin
{$IFDEF DYNAMIC_CALL}
  iModule := LoadLibrary(PChar('Filter.DLL'));
{$ENDIF}
end;

procedure TfrmFilterSample.FormDestroy(Sender: TObject);
begin
{$IFDEF DYNAMIC_CALL}
  if iModule>0 then FreeLibrary(iModule);
{$ENDIF}

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -