tooloptionsfrm.pas

来自「一个电力企业的后台管理程序」· PAS 代码 · 共 206 行

PAS
206
字号
unit ToolOptionsFrm;

interface

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

type
  TMenuStatus=(MenuAdd,MenuEdit);
  
  TForm_ToolOptions = class(TForm)
    Label1: TLabel;
    ListBox1: TListBox;
    SB_Add: TSpeedButton;
    SB_delete: TSpeedButton;
    SB_edit: TSpeedButton;
    SB_up: TSpeedButton;
    SB_down: TSpeedButton;
    SB_close: TSpeedButton;
    SB_OK: TSpeedButton;
    ListBox2: TListBox;
    procedure SB_closeClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SB_AddClick(Sender: TObject);
    procedure SB_editClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure SB_deleteClick(Sender: TObject);
    procedure SB_upClick(Sender: TObject);
    procedure SB_downClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SB_OKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_ToolOptions: TForm_ToolOptions;
  MenuStatus:TMenuStatus;
  EditInt:integer;

implementation
uses AutoMenuFrm,MemuOption,ToolPropertyFrm;
{$R *.DFM}

procedure TForm_ToolOptions.SB_closeClick(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TForm_ToolOptions.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=CaFree;
  Form_ToolOptions:=nil;
end;

procedure TForm_ToolOptions.SB_AddClick(Sender: TObject);
begin
  MenuStatus:=MenuAdd;
  if not Assigned(Form_ToolProperty) then application.CreateForm(TForm_ToolProperty,Form_ToolProperty);
  Form_ToolProperty.ShowModal;
end;

procedure TForm_ToolOptions.SB_editClick(Sender: TObject);
var
  i:integer;
begin
  MenuStatus:=MenuEdit;
  i:=listbox1.ItemIndex;
  EditInt:=i;
  if not Assigned(Form_ToolProperty) then application.CreateForm(TForm_ToolProperty,Form_ToolProperty);
  Form_ToolProperty.Edt_Title.Text:=listbox1.Items.Strings[i];
  Form_ToolProperty.Edt_program.Text:=listbox2.Items.Strings[i];
  Form_ToolProperty.ShowModal;
end;

procedure TForm_ToolOptions.FormShow(Sender: TObject);
begin
  if listbox1.ItemIndex=-1 then
  begin
    SB_delete.Enabled:=false;
    SB_edit.Enabled:=false;
  end else
  begin
    SB_delete.Enabled:=true;
    SB_edit.Enabled:=true;
  end;
end;

procedure TForm_ToolOptions.ListBox1Click(Sender: TObject);
begin
  if listbox1.ItemIndex=-1 then
  begin
    SB_delete.Enabled:=false;
    SB_edit.Enabled:=false;
  end else
  begin
    SB_delete.Enabled:=true;
    SB_edit.Enabled:=true;
  end;
end;

procedure TForm_ToolOptions.SB_deleteClick(Sender: TObject);
var
  i:integer;
begin
  if listbox1.ItemIndex<>-1 then
  begin
    i:=listbox1.ItemIndex;
    listbox1.Items.Delete(i);
    listbox2.Items.Delete(i);
  end;
  if listbox1.ItemIndex=-1 then
  begin
    SB_delete.Enabled:=false;
    SB_edit.Enabled:=false;
  end else
  begin
    SB_delete.Enabled:=true;
    SB_edit.Enabled:=true;
  end;
end;

procedure TForm_ToolOptions.SB_upClick(Sender: TObject);
var
  i:integer;
begin
  if listbox1.ItemIndex>0 then
  begin
    i:=listbox1.ItemIndex;
    listbox1.Items.Move(i,i-1);
    listbox2.Items.Move(i,i-1);
  end;
end;

procedure TForm_ToolOptions.SB_downClick(Sender: TObject);
var
  i:integer;
begin
  if (listbox1.ItemIndex<>-1)and(listbox1.ItemIndex<>listbox1.Items.Count-1) then
  begin
    i:=listbox1.ItemIndex;
    listbox1.Items.Move(i,i+1);
    listbox2.Items.Move(i,i+1);
  end;
end;

procedure TForm_ToolOptions.FormCreate(Sender: TObject);
var
  TSign,PSign:integer;
  TitleStr,ProgramStr:string;
begin
  listbox1.Items.Clear;
  TitleStr:=ReadIni('Option','MenuTitle','');
  ProgramStr:=ReadIni('Option','MenuProgram','');
  if (TitleStr<>'')and(ProgramStr<>'') then
  begin
    if pos(';',TitleStr)>0 then
    begin
      while pos(';',TitleStr)>0 do
      begin
        TSign:=pos(';',TitleStr);     PSign:=pos(';',ProgramStr);
        listbox1.Items.Append(copy(TitleStr,1,TSign-1));
        listbox2.Items.Append(copy(ProgramStr,1,PSign-1));
        TitleStr:=copy(TitleStr,TSign+1,Length(TitleStr)-TSign);
        programStr:=copy(ProgramStr,PSign+1,Length(ProgramStr)-PSign);
      end;
    end;
    if pos(';',TitleStr)=0 then
    begin
      listbox1.Items.Append(TitleStr);
      listbox2.Items.Append(ProgramStr);
    end;
  end;
end;

procedure TForm_ToolOptions.SB_OKClick(Sender: TObject);
var
  TitleStr,ProgramStr:string;
  i:integer;
begin
  TitleStr:='';  ProgramStr:='';
  WriteIni('System','MenuCount',IntToStr(ListBox1.Items.Count));
  for i:=1 to ListBox1.Items.Count do
  begin
    if i>1 then
    begin
      TitleStr:=TitleStr+';'+ListBox1.Items.Strings[i-1];
      ProgramStr:=ProgramStr+';'+ListBox2.Items.Strings[i-1];
    end else
    begin
      TitleStr:=TitleStr+ListBox1.Items.Strings[i-1];
      ProgramStr:=ProgramStr+ListBox2.Items.Strings[i-1];
    end;
  end;
  WriteIni('Option','MenuTitle',TitleStr);
  WriteIni('Option','MenuProgram',ProgramStr);
  ModalResult := mrOK;
end;

end.

⌨️ 快捷键说明

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