streditd4.pas

来自「本系统前端界面采用WINDOWS 窗口风格」· PAS 代码 · 共 71 行

PAS
71
字号
unit StrEditD4;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, dsgnintf;

type
  TStrEditDlg = class(TForm)
    Bevel1: TBevel;
    btnOk: TButton;
    btnCancel: TButton;
    Editor: TRichEdit;
    StatusBar: TStatusBar;
    procedure EditorChange(Sender: TObject);
    procedure EditorKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
  	FModified:	Boolean;
  public
    { Public declarations }
  end;

  TStringListProperty = class(TClassProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    procedure Edit; override;
  end;
  
implementation

{$R *.DFM}

procedure TStrEditDlg.EditorChange(Sender: TObject);
begin
	if Sender = Editor then
  	FModified := True;
  StatusBar.SimpleText := Format ('%d lines.', [Editor.Lines.Count]);
end;

procedure TStrEditDlg.EditorKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
	if Key = VK_ESCAPE then
  	ModalResult := mrCancel;
end;

{ TStringListProperty }

procedure TStringListProperty.Edit;
begin
  with TStrEditDlg.Create(Application) do
  try
    Editor.Lines := TStrings(GetOrdValue);
    EditorChange (nil);
    FModified := False;
    ActiveControl := Editor;
    if ShowModal = mrOk then
    	SetOrdValue(LongInt(Editor.Lines));
  finally
    Free;
  end;
end;

function TStringListProperty.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog] - [paSubProperties];
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?