我需要为Lazarus项目创建一个about条目。我希望它是一个多页面的事情,就像Lazarus IDE中的那个,但我找不到任何关于这样做的信息。
答案 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;
//---------------------------------------------------------------------------
这使您能够拥有一个多选项卡帮助表单,其中包含格式正确的文本,您可以使用嵌入在可执行文件中的文字处理器生成该文本。