📄 umodifybutton.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 + -