拉撒路风格帮助形式

时间:2015-08-24 14:21:54

标签: lazarus

我需要为Lazarus项目创建一个about条目。我希望它是一个多页面的事情,就像Lazarus IDE中的那个,但我找不到任何关于这样做的信息。

1 个答案:

答案 0 :(得分:0)

Lazarus中关于盒子的那个以及我在许多项目中使用的是TTabControl。我发现特别有用的是将它与TRichMemo结合使用,然后为每个选项卡提供不同的RTF文件,然后将这些文件作为资源编译到程序中。

例如,对于一个项目,我有四个选项卡。我使用每个选项卡的标题作为该选项卡的资源名称的一部分。我的资源文件如下所示:

ABOUTBOX_INSTRUCTIONS   RCDATA  "Resources/Instructions.rtf"              LANGUAGE 0,0
ABOUTBOX_LICENSE        RCDATA  "Resources/License.rtf"                   LANGUAGE 0,0
ABOUTBOX_CHANGELOG      RCDATA  "Resources/Changelog.rtf"                 LANGUAGE 0,0
ABOUTBOX_CREDITS        RCDATA  "Resources/Credits.rtf"                   LANGUAGE 0,0

切换标签然后变得相对容易:

//---------------------------------------------------------------------------
// tabAboutTabs OnChange event handler.  Load the appropriate resource into
// the RichMemo box.
//
procedure TAboutBox.tabAboutTabsChange(Sender: TObject);
var
  ResourceStream: TResourceStream;
begin
  // Each tab's caption becomes part of the resource name for the RTF file loaded.
  ResourceStream := TResourceStream.Create(HInstance, 'ABOUTBOX_' + UpperCase(tabAboutTabs.Tabs[tabAboutTabs.TabIndex]), RT_RCDATA);
  richAboutText.LoadRichText(ResourceStream);
  ResourceStream.Free;
end;
//---------------------------------------------------------------------------

这使您能够拥有一个多选项卡帮助表单,其中包含格式正确的文本,您可以使用嵌入在可执行文件中的文字处理器生成该文本。