📄 mainform.~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 + -