📄 mainffm.pas
字号:
unit MainFfm;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TMainForm = class(TForm)
btnShowCalendar: TButton;
btnCloseCalendar: TButton;
procedure btnShowCalendarClick(Sender: TObject);
procedure btnCloseCalendarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FFormRef: TForm;
end;
var
MainForm: TMainForm;
{声明需要引用的DLL函数和过程}
function ShowCalendar(AHandle: THandle; ACaption: String): Longint; StdCall;
external 'CALENDARMLLIB.DLL';
procedure CloseCalendar(AFormRef: Longint); stdcall;
external 'CALENDARMLLIB.DLL';
implementation
{$R *.DFM}
procedure TMainForm.btnShowCalendarClick(Sender: TObject);
begin
{如果窗体的引用为空,则显示窗体}
if not Assigned(FFormRef) then
FFormRef := TForm(ShowCalendar(Application.Handle, Caption));
end;
procedure TMainForm.btnCloseCalendarClick(Sender: TObject);
begin
{如果窗体的引用不为空,则关闭窗体,并初始化FFormRef字段为空}
if Assigned(FFormRef) then
begin
CloseCalendar(Longint(FFormRef));
FFormRef := nil;
end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FFormRef := nil; // 在窗体创建时,初始化FFormRef字段为空
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -