我需要为Lazarus项目创建一个about条目。我希望它是一个多页事件,就像在Lazarus IDE中的关于一个,但我找不到任何关于这样做的信息。
发布于 2017-01-02 01:29:56
Lazarus about框中的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;
//---------------------------------------------------------------------------这使您能够使用嵌入在可执行文件中的字处理器生成具有格式良好的文本的多选项卡帮助表单。
https://stackoverflow.com/questions/32184686
复制相似问题