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

📄 umodifybutton.pas

📁 Delphi函数工厂。。。。。。。。。。。。。
💻 PAS
字号:
unit uModifyButton;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BusinessSkinForm, bsSkinCtrls, ComCtrls, StdCtrls, Mask,
  bsSkinBoxCtrls, bsMessages,uFormEffect;

type
  TfmModifyButton = class(TForm)
    skinForm: TbsBusinessSkinForm;
    lvPanel: TbsSkinPanel;
    lvButtons: TbsSkinListView;
    Label1: TLabel;
    btnDelete: TbsSkinButton;
    Label2: TLabel;
    lblFile: TLabel;
    lblParams: TLabel;
    btnModify: TbsSkinButton;
    btnClose: TbsSkinButton;
    skinMsg: TbsSkinMessage;
    lblSection: TLabel;
    cbSection: TbsSkinComboBox;
    hScrollBar: TbsSkinScrollBar;
    vScrollBar: TbsSkinScrollBar;
    edtButtonName: TbsSkinMemo;
    edtFile: TbsSkinMemo;
    edtParams: TbsSkinMemo;
    bsSkinPanel1: TbsSkinPanel;
    cbSound: TbsSkinCheckRadioBox;
    gbMode: TbsSkinRadioGroup;
    cbEffect: TbsSkinCheckRadioBox;
    procedure ShowData;
    procedure lvButtonsClick(Sender: TObject);
    procedure edtFileChange(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure cbSoundClick(Sender: TObject);
    procedure cbSectionChange(Sender: TObject);
    procedure edtButtonNameChange(Sender: TObject);
    procedure edtButtonNameKeyPress(Sender: TObject; var Key: Char);
    procedure gbModeClick(Sender: TObject);
    procedure cbEffectClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fmModifyButton: TfmModifyButton;

implementation

uses uMainForm2;

{$R *.dfm}

procedure TfmModifyButton.ShowData;
var
  ListItem: TListItem;
  I: Integer;
  ButtonInfo: TButtonInfo;
begin
  with lvButtons do
  begin
    Items.BeginUpdate;
    try
      Clear;
      for I := 0 to fmMain.FUserButtonsList.Count - 1 do
      begin
        ButtonInfo := TButtonInfo(fmMain.FUserButtonsList.Objects[I]);
        ListItem := Items.Add;
        ListItem.Caption := ButtonInfo.ButtonName;
        ListItem.ImageIndex := ButtonInfo.Button.ImageIndex;
        ListItem.SubItems.Add(ButtonInfo.FileName);
        ListItem.SubItems.Add(ButtonInfo.Params);
        ListItem.SubItems.Add(cbSection.Items[ButtonInfo.Section]);
      end;
    finally
      Items.EndUpdate;
    end;
  end;
end;

procedure TfmModifyButton.lvButtonsClick(Sender: TObject);
begin
  if lvButtons.ItemIndex <> -1 then
  begin
    btnDelete.Enabled := True;
    edtFile.Enabled := True;
    edtParams.Enabled := True;
    cbSection.Enabled := True;

    lblFile.Enabled := True;
    lblParams.Enabled := True;
    lblSection.Enabled := True;

    edtButtonName.Text := lvButtons.Selected.Caption;
    edtFile.Text := lvButtons.Selected.SubItems[0];
    edtParams.Text := lvButtons.Selected.SubItems[1];
    cbSection.ItemIndex := cbSection.Items.IndexOf(lvButtons.Selected.SubItems[2]);
  end
  else
  begin
    btnDelete.Enabled := False;
    edtButtonName.Text := '';
    edtFile.Text := '';
    edtParams.Text := '';

    edtFile.Enabled := False;
    edtParams.Enabled := False;

    lblFile.Enabled := False;
    lblParams.Enabled := False;
    lblSection.Enabled := False;

    cbSection.Enabled := False;
  end;
end;

procedure TfmModifyButton.edtFileChange(Sender: TObject);
begin
  if lvButtons.ItemIndex = -1 then Exit;
  with lvButtons.Selected do
  begin
    btnModify.Enabled := (SubItems[0] <> edtFile.Text)
      or (SubItems[1] <> edtParams.Text);
  end;
end;

procedure TfmModifyButton.btnModifyClick(Sender: TObject);
begin
  with fmMain do
  begin
    PlayDefButtonClickSound;
    DeleteToolButton(lvButtons.ItemIndex, lvButtons.Selected.Caption);
    AddToolButton(edtButtonName.Text, edtFile.Text, edtParams.Text, cbSection.ItemIndex);
  end;
  with lvButtons.Selected do
  begin
    Caption := edtButtonName.Text;
    SubItems[0] := edtFile.Text;
    SubItems[1] := edtParams.Text;
    SubItems[2] := cbSection.Text;
    ImageIndex := fmMain.AddImageToImageList(edtFile.Text);
  end;
  btnModify.Enabled := False;
end;

procedure TfmModifyButton.btnDeleteClick(Sender: TObject);
var
  MsgResult: Integer;
begin
  with fmMain do
  begin
    PlayDefButtonClickSound;
    MessageBeep(MB_ICONQUESTION);
    MsgResult := skinMsg.MessageDlg('您确实要删除 ' + edtButtonName.Text +
      ' 按钮吗?', mtConfirmation, [mbYes, mbNo], 0);
    PlayDefButtonClickSound;
    if MsgResult = mrYes then
      DeleteToolButton(lvButtons.ItemIndex, edtButtonName.Text);
    lvButtons.DeleteSelected;
    lvButtons.ItemIndex := -1;
    lvButtonsClick(lvButtons); // 手工触发lvButtons的OnClick事件
  end; {with}
end;

procedure TfmModifyButton.btnCloseClick(Sender: TObject);
begin
  with fmMain do PlayDefButtonClickSound;
  Close;
end;

procedure TfmModifyButton.cbSoundClick(Sender: TObject);
begin
  fmMain.SetSound(cbSound.Checked);
end;

procedure TfmModifyButton.cbSectionChange(Sender: TObject);
begin
  if lvButtons.ItemIndex = -1 then Exit;
  btnModify.Enabled := true
end;

procedure TfmModifyButton.edtButtonNameChange(Sender: TObject);
begin
  if lvButtons.ItemIndex = -1 then Exit;
  btnModify.Enabled := true
end;

procedure TfmModifyButton.edtButtonNameKeyPress(Sender: TObject;
  var Key: Char);
begin
  if key = #13 then
    key := #0;
end;

procedure TfmModifyButton.gbModeClick(Sender: TObject);
begin
fmMain.SetMode(gbMode.ItemIndex);
end;

procedure TfmModifyButton.cbEffectClick(Sender: TObject);
begin
FormEffect.SetEffect(cbEffect.Checked);
end;

end.

⌨️ 快捷键说明

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