📄 ukeyvaluemoduleform.pas
字号:
{-----------------------------------------------------------------------------}
{
{ 单元名: uKeyValueModuleForm
{
{ 作者: 阿文(zqw0117@sina.com),杨勇(qoiwin@hotmail.com)
{
{ 描述: 本单元中封装了模块化的窗体模块 TKeyValueModuleForm ,并用一个
{ 从 TCustomModuleDialog 类继承的 TKeyValueDialog 封装了 TKeyValueModuleForm
{ 调用简单。直接使用 TKeyValueDialog.Execute 方法即可弹出窗口。
{
{ 版本: V 1.0
{
{ 历史: 2003-04-29 V1.0 杨勇创建本单元 V1.0 版。
{
{ 使用方法:
{ 创建一个 TKeyValueDialog 的实例,然后调用Execute方法即可:
{ var
{ KeyValueDialog: TKeyValueDialog;
{ begin
{ KeyValueDialog := TKeyValueDialog.Create(Application);
{ try
{ KeyValueDialog.Execute; // 这一句将显示模块窗口
{ finally
{ KeyValueDialog.Free;
{ end;
{ end;
{
{ 注意:任何情况下,不要直接使用 TKeyValueModuleForm 类
{ 这样才能保证完全遵守封装的原则。
{
{-----------------------------------------------------------------------------}
unit uKeyValueModuleForm;
// {$I directives.inc}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uCustomModuleForm, StdCtrls, ComCtrls;
type
TKeyValueDialog = class;
TKeyValueModuleForm = class(TCustomModuleForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
GroupBox1: TGroupBox;
edtInput: TEdit;
GroupBox2: TGroupBox;
stxShow: TStaticText;
procedure FormActivate(Sender: TObject);
procedure edtInputKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
FKeyValueDialog: TKeyValueDialog;
public
{ Public declarations }
end;
{ ========================== }
{ TKeyValueDialog 声明部分 }
{ ========================== }
TKeyValueDialog = class(TCustomModuleDialog)
private
FModuleForm: TKeyValueModuleForm;
FPageIndex: Integer;
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute: Boolean; override;
published
property PageIndex: Integer read FPageIndex write FPageIndex
default 0;
end;
var
KeyValueModuleForm: TKeyValueModuleForm;
implementation
{$R *.dfm}
resourcestring
SDefultKeyValueDialogTitle = '键值快速查询';
{ TMessageBoxDialog }
constructor TKeyValueDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FModuleForm := TKeyValueModuleForm.Create(Self);
FModuleForm.FKeyValueDialog := Self;
FModuleForm.FDialogModule := Self;
FModuleForm.Caption := SDefultKeyValueDialogTitle;
FWindowForm := FModuleForm;
FPageIndex := 0;
end;
destructor TKeyValueDialog.Destroy;
begin
if FModuleForm.Visible then FModuleForm.Close;
FModuleForm.Free;
inherited Destroy;
end;
function TKeyValueDialog.Execute: Boolean;
begin
inherited Execute;
Result := FModuleForm.ShowModal = mrOK;
end;
procedure TKeyValueModuleForm.FormActivate(Sender: TObject);
begin
inherited;
edtInput.SetFocus;
end;
procedure TKeyValueModuleForm.edtInputKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
edtInput.SelectAll;
stxShow.Caption := inttostr(byte(Key));
end;
{$IFDEF DEBUGMODE}
initialization
with TKeyValueDialog.Create(nil) do
begin
Execute;
Free;
end;
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -