delphi7中的动态窗体创建

本文介绍如何在Delphi7中动态创建窗体,并详细讨论了窗体的关闭、释放资源以及如何处理用户交互事件。通过示例展示了如何使用Tfrm_Temp类进行窗体操作,包括FormCreate、FormClose、WMSysCommand等关键方法,以及如何覆盖和自定义窗体的各种事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TModalResult代表模式窗口的返回值

Constant Value Meaning


mrNone  0 None. Used as a default value before the user exits.
mrOk   idOK The user exited with OK button.
mrCancel idCancel The user exited with the CANCEL button. 
mrAbort idAbort The user exited with the ABORT button.
mrRetry idRetry The user exited with the RETRY button.
mrIgnore idIgnore The user exited with the IGNORE button.
mrYes idYes The user exited with the YES button.
mrNo idNo The user exited with the NO button.
mrAll mrNo + 1 The user exited with the ALL button.
mrNoToAll mrAll + 1 The user exited with the NO TO ALL button.

mrYesToAll mrNoToAll + 1 The user exited with the YES TO ALL button.

退出程序时附带的返回值,跟调用函数一个道理

可以起到关闭Form的作用,但是并不会释放Form的资源。只有调用Form.Free才能释放资源。

关闭 模式窗口,并且返回给调用者一个值, 可以在调用单元中这样
if Form2.ShowModal = mrOk then ..............
else ..............;

关闭后,不会释放,仍占用系统资


---------------------------------------------------------------------------

例如:

  Tfrm_Temp = class(TForm)
  private
    //动态窗体的父类和窗体上的面板
    FPanel: TPanel;
    FParent: TComponent;
    //------------------------------
  public
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    //屏蔽Alt+F4
    procedure WMSysCommand(var Msg: TMessage); message WM_SysCommand;
    //屏蔽热键
    procedure HideHotKey(iHide: integer);
    //覆盖窗体创建事件
    constructor ConCreate(AOwner: TComponent; APanel: TPanel;
      EFormShowOnEvent: TNotifyEvent; EFormCloseOnEvent: TCloseEvent;
      EFormKeyDownOnEvent: TKeyEvent); overload;
    //覆盖窗体创建事件
    constructor ConCreate(AOwner: TComponent; APanel: TPanel;
      EFormShowOnEvent: TNotifyEvent; EFormActivateOnEvent: TNotifyEvent;
      EFormCloseOnEvent: TCloseEvent; EFormKeyDownOnEvent: TKeyEvent); overload;
    //覆盖窗体创建事件
    constructor ConCreate(AOwner: TComponent; APanel: TPanel;
      EFormShowOnEvent: TNotifyEvent; EFormCloseOnEvent: TCloseEvent;
      EFormKeyDownOnEvent: TKeyEvent; var AEdit: TRzEdit;
      EEditKeyPressOnEvent: TKeyPressEvent); overload;
    //覆盖窗体释放事件
    destructor Destroy; override;
    //窗体执行事件
    Function Execute(bHaveTitle: Boolean = True; APosition: TPosition = poScreenCenter): Boolean; overload;
    Function Execute(iLeft, iTop, iWidth, iHeight: integer): Boolean; overload;
    Function Execute_: Boolean; overload;
  end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值