⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ukeyvaluemoduleform.pas

📁 Delphi函数工厂。。。。。。。。。。。。。
💻 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 + -