macroed.pas

来自「delphi编程控件」· PAS 代码 · 共 101 行

PAS
101
字号
unit MacroEd;
(*
 COPYRIGHT (c) RSD software 1997 - 98
 All Rights Reserved.
*)

interface

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

type
  TfMacrosEditor = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    BOk: TBitBtn;
    BCancel: TBitBtn;
    ListBox: TListBox;
    Edit: TEdit;
    LText: TLabel;
    LMacrosNames: TLabel;
    BHelp: TBitBtn;
    procedure ListBoxClick(Sender: TObject);
    procedure EditExit(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
  private
    Strings : TStrings;
  end;

function EditDataSetMacros(AName : String; Macros : TMacros) : Boolean;

implementation
uses autostrs, audbstrs;

{$R *.DFM}

function EditDataSetMacros(AName : String; Macros : TMacros) : Boolean;
Var
  AForm : TfMacrosEditor;
  i : Integer;
begin
  AForm := TfMacrosEditor.Create(Nil);
  AForm.Strings := TStringList.Create;
  AForm.Caption := LoadStr(ACDB_MACROSEDITORCAPTION) + AName;
  For i := 0 to Macros.Count - 1 do begin
    AForm.ListBox.Items.Add(Macros[i].Name);
    AForm.Strings.Add(Macros[i].Text);
  end;

  if (Macros.Count = 0) then
    AForm.Edit.Enabled := False
  else begin
    AForm.ListBox.ItemIndex := 0;
    AForm.Edit.Text := AForm.Strings[0];
  end;

  AForm.ShowModal;

  if(AForm.ModalResult = mrOK) then begin
    For i := 0 to Macros.Count - 1 do
      Macros[i].Text := AForm.Strings[i];
    Result := True;
  end else Result := False;

  AForm.Strings.Free;
  AForm.Free;
end;


procedure TfMacrosEditor.ListBoxClick(Sender: TObject);
begin
  Edit.Text := Strings[ListBox.ItemIndex];
end;

procedure TfMacrosEditor.EditExit(Sender: TObject);
begin
  if(ListBox.ItemIndex >= 0) and (ListBox.Items.Count > 0) then
    Strings[ListBox.ItemIndex] := Edit.Text;
end;

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

procedure TfMacrosEditor.FormCreate(Sender: TObject);
begin
  BOK.Caption := LoadStr(ACB_OK);
  BCancel.Caption := LoadStr(ACB_CANCEL);
  BHelp.Caption := LoadStr(ACB_HELP);
  LText.Caption := LoadStr(AEL_TEXT);
  LMacrosNames.Caption := LoadStr(ACDB_MACROSNAMES);
end;

end.

⌨️ 快捷键说明

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