Lazarus 按钮切换机制

Lazarus button toggle mechanism

我在 Lazarus 中编写了一个小工具,将其用作我的一些游戏的启动器,所有这些都是通过链接到按下按钮的 cmd 脚本完成的。

现在我正在寻找对我的工具的两个修改,但由于我在编程方面不是很有天赋,我希望有人能帮助我。

我要查找的第一件事是将 TButton 标题分成两行。我曾尝试通过 GUI 来完成此操作,但没有找到解决方案。

我想做的第二件事是通过按下按钮来更改标题和功能。例如 Button1 有标题 Enable Enhancements,运行 是脚本 enhancements_on.bat。按下按钮后,我希望它将标题更改为 Disable Enhancements,以便脚本 enhancements_off.bat 将在下次按下时 运行。

这可能吗?如果是,你是怎么做到的?

我知道了。如果有人需要这样的功能,请使用切换框和以下代码:

procedure TForm1.ToggleBox1Change(Sender: TObject);
begin
 if ToggleBox1.Checked then
  begin
   ToggleBox1.Caption:='Mods aktiviert.'
   ShellExecute(0,nil, PChar('cmd'),PChar('/c "start enhancements_on.bat"'),nil,1)
  end
   else ToggleBox1.Caption:='Mods deaktiviert.';
   ShellExecute(0,nil, PChar('cmd'),PChar('/c "start enhancements_off.bat"'),nil,1)
end; 

The first thing I'm looking for is to split the TButton caption into two lines.

只需在运行时设置 Togglebox 的标题,例如在窗体的 OnCreate 事件中使用 LineEnding 来拆分行。

Togglebox1.Caption := 'Line 1' + LineEnding + 'Line 2';

请注意,这仅适用于 TTogglebox,不适用于 TButton。