OnKeyPress for Escape默认关闭表单

时间:2017-01-30 15:51:18

标签: forms delphi delphi-7

我有一个问题:如何让我的应用程序中的每个新创建的表单都实现了OnKeyPress过程并将KeyPreview设置为True?

我希望不要经常将该过程添加到OnKeyPress事件中,并手动将KeyPreview设置为True。

2 个答案:

答案 0 :(得分:2)

定义你自己的表格TKPForm,它继承自TForm并添加一个构造函数,它将KeyPrview设置为True,并有一个按键来执行你想要的操作。 当然,如果您需要TKPForm新实例的唯一代码,您必须覆盖这些密钥。

自从我做任何Delphi以来已经很长时间了,但这不应该太过分了。

unit KPForm;

interface

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

type
  TKPForm = class(TForm)

 private
    { Private declarations }
  public
    constructor CreateNew(AOwner: TComponent); override;
  end;
var
  TKPForm: TKPForm 

implementation

{$R *.dfm}
constructor KPForm.CreateNew(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Self.KeyPreview = true;
  Self.OnKeyPress = YourKeyPressEventProcedure;
end;

那么当你需要一个新的表格时,你会使用一个新的KPForm。

查看Visual Form Inheritance。

希望它有所帮助。

答案 1 :(得分:0)

我找到的最佳方法是创建表单模板并将其添加到存储库。然后,在存储库中将其设置为“新表单”。

在这种情况下,无论何时创建新表单,它都将是非常模板。您所要做的就是更改名称和标题。

这对Delphi 7有所帮助。