From 7e0e0f24e18cebed439077cf0becc556902d57a1 Mon Sep 17 00:00:00 2001 From: mattias Date: Wed, 22 Mar 2006 19:22:07 +0000 Subject: [PATCH] added package info in install packages dialog from Tomas Gregorovic git-svn-id: trunk@8989 - --- ide/lazarusidestrconsts.pas | 1 + packager/installpkgsetdlg.lfm | 91 +++++++++++++++++++------------- packager/installpkgsetdlg.lrs | 98 +++++++++++++++++++---------------- packager/installpkgsetdlg.pas | 54 +++++++++++++++++-- 4 files changed, 158 insertions(+), 86 deletions(-) diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index 18fb6821f1..3d2b5e9606 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -2864,6 +2864,7 @@ resourcestring lisUninstallSelection = 'Uninstall selection'; lisPackagesToInstallInTheIDE = 'Packages to install in the IDE'; lisInstallSelection = 'Install selection'; + lisPackageInfo = 'Package Info'; lisSaveAndRebuildIDE = 'Save and rebuild IDE'; lisSaveAndExitDialog = 'Save and exit dialog'; lisAlignment = 'Alignment'; diff --git a/packager/installpkgsetdlg.lfm b/packager/installpkgsetdlg.lfm index e19e006725..cac39b4a25 100644 --- a/packager/installpkgsetdlg.lfm +++ b/packager/installpkgsetdlg.lfm @@ -1,154 +1,171 @@ object InstallPkgSetDialog: TInstallPkgSetDialog + ActiveControl = InstallListBox BorderStyle = bsSizeToolWin Caption = 'InstallPkgSetDialog' - ClientHeight = 373 + ClientHeight = 441 ClientWidth = 529 OnCreate = InstallPkgSetDialogCreate OnDestroy = InstallPkgSetDialogDestroy OnResize = InstallPkgSetDialogResize PixelsPerInch = 96 HorzScrollBar.Page = 528 - VertScrollBar.Page = 372 + VertScrollBar.Page = 440 Left = 319 - Height = 373 + Height = 441 Top = 178 Width = 529 object InstallPkgGroupBox: TGroupBox - BorderSpacing.OnChange = nil + Anchors = [akTop, akLeft, akBottom] BorderSpacing.Around = 6 Caption = 'InstallPkgGroupBox' - ClientHeight = 307 + ClientHeight = 273 ClientWidth = 251 - ParentColor = True TabOrder = 0 Left = 6 - Height = 325 + Height = 291 Top = 6 Width = 255 object InstallListBox: TListBox Align = alClient - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 ClickOnSelChange = False MultiSelect = True OnSelectionChange = InstallListBoxSelectionChange TabOrder = 0 Left = 6 - Height = 202 + Height = 168 Top = 6 Width = 239 end object UninstallButton: TButton Align = alBottom - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 + BorderSpacing.InnerBorder = 2 Caption = 'UninstallButton' OnClick = UninstallButtonClick TabOrder = 1 Left = 6 Height = 25 - Top = 214 + Top = 180 Width = 239 end object ImportButton: TButton Align = alBottom - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 + BorderSpacing.InnerBorder = 2 Caption = 'ImportButton' OnClick = ImportButtonClick TabOrder = 2 Left = 6 Height = 25 - Top = 245 + Top = 211 Width = 239 end object ExportButton: TButton Align = alBottom - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 + BorderSpacing.InnerBorder = 2 Caption = 'ExportButton' OnClick = ExportButtonClick TabOrder = 3 Left = 6 Height = 25 - Top = 276 + Top = 242 Width = 239 end end object AvailablePkgGroupBox: TGroupBox Anchors = [akTop, akLeft, akBottom] - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 Caption = 'AvailablePkgGroupBox' - ClientHeight = 307 + ClientHeight = 273 ClientWidth = 251 - ParentColor = True TabOrder = 1 Left = 267 - Height = 325 + Height = 291 Top = 6 Width = 255 object AvailableListBox: TListBox Align = alClient - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 ClickOnSelChange = False MultiSelect = True OnSelectionChange = AvailableListBoxSelectionChange TabOrder = 0 Left = 6 - Height = 264 + Height = 230 Top = 6 Width = 239 end object AddToInstallButton: TButton Align = alBottom - BorderSpacing.OnChange = nil BorderSpacing.Around = 6 + BorderSpacing.InnerBorder = 2 Caption = 'AddToInstallButton' OnClick = AddToInstallButtonClick TabOrder = 1 Left = 6 Height = 25 - Top = 276 + Top = 242 Width = 239 end end object CancelButton: TButton Anchors = [akLeft, akBottom] AutoSize = True - BorderSpacing.OnChange = nil + BorderSpacing.InnerBorder = 2 Cancel = True Caption = 'CancelButton' ModalResult = 2 TabOrder = 2 Left = 6 - Height = 25 - Top = 338 - Width = 84 + Height = 29 + Top = 402 + Width = 88 end object SaveAndRebuildButton: TButton Anchors = [akBottom] AutoSize = True - BorderSpacing.OnChange = nil + BorderSpacing.InnerBorder = 2 Caption = 'SaveAndRebuildButton' OnClick = InstallButtonClick TabOrder = 3 - Left = 199 - Height = 25 - Top = 338 - Width = 130 + Left = 197 + Height = 29 + Top = 402 + Width = 135 end object SaveAndExitButton: TButton Anchors = [akRight, akBottom] AutoSize = True - BorderSpacing.OnChange = nil + BorderSpacing.InnerBorder = 2 Caption = 'SaveAndExitButton' OnClick = SaveAndExitButtonClick TabOrder = 4 - Left = 409 - Height = 25 - Top = 338 - Width = 113 + Left = 406 + Height = 29 + Top = 402 + Width = 116 + end + object PkgInfoGroupBox: TGroupBox + Anchors = [akLeft, akRight, akBottom] + Caption = 'PkgInfoGroupBox' + ClientHeight = 67 + ClientWidth = 511 + TabOrder = 5 + Left = 7 + Height = 85 + Top = 306 + Width = 515 + object PkgInfoMemo: TMemo + Anchors = [akTop, akLeft, akRight, akBottom] + ReadOnly = True + ScrollBars = ssAutoVertical + TabOrder = 0 + Left = 5 + Height = 55 + Top = 5 + Width = 500 + end end end diff --git a/packager/installpkgsetdlg.lrs b/packager/installpkgsetdlg.lrs index 12a7b3725a..bedc258c46 100644 --- a/packager/installpkgsetdlg.lrs +++ b/packager/installpkgsetdlg.lrs @@ -1,50 +1,56 @@ { This is an automatically generated lazarus resource file } LazarusResources.Add('TInstallPkgSetDialog','FORMDATA',[ - 'TPF0'#20'TInstallPkgSetDialog'#19'InstallPkgSetDialog'#11'BorderStyle'#7#13 - +'bsSizeToolWin'#7'Caption'#6#19'InstallPkgSetDialog'#12'ClientHeight'#3'u'#1 - +#11'ClientWidth'#3#17#2#8'OnCreate'#7#25'InstallPkgSetDialogCreate'#9'OnDest' - +'roy'#7#26'InstallPkgSetDialogDestroy'#8'OnResize'#7#25'InstallPkgSetDialogR' - +'esize'#13'PixelsPerInch'#2'`'#18'HorzScrollBar.Page'#3#16#2#18'VertScrollBa' - +'r.Page'#3't'#1#4'Left'#3'?'#1#6'Height'#3'u'#1#3'Top'#3#178#0#5'Width'#3#17 - +#2#0#9'TGroupBox'#18'InstallPkgGroupBox'#22'BorderSpacing.OnChange'#13#20'Bo' - +'rderSpacing.Around'#2#6#7'Caption'#6#18'InstallPkgGroupBox'#12'ClientHeight' - +#3'3'#1#11'ClientWidth'#3#251#0#11'ParentColor'#9#8'TabOrder'#2#0#4'Left'#2#6 - +#6'Height'#3'E'#1#3'Top'#2#6#5'Width'#3#255#0#0#8'TListBox'#14'InstallListBo' - +'x'#5'Align'#7#8'alClient'#22'BorderSpacing.OnChange'#13#20'BorderSpacing.Ar' - +'ound'#2#6#16'ClickOnSelChange'#8#11'MultiSelect'#9#17'OnSelectionChange'#7 - +#29'InstallListBoxSelectionChange'#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3 - +#202#0#3'Top'#2#6#5'Width'#3#239#0#0#0#7'TButton'#15'UninstallButton'#5'Alig' - +'n'#7#8'alBottom'#22'BorderSpacing.OnChange'#13#20'BorderSpacing.Around'#2#6 - +#7'Caption'#6#15'UninstallButton'#7'OnClick'#7#20'UninstallButtonClick'#8'Ta' - +'bOrder'#2#1#4'Left'#2#6#6'Height'#2#25#3'Top'#3#214#0#5'Width'#3#239#0#0#0#7 - +'TButton'#12'ImportButton'#5'Align'#7#8'alBottom'#22'BorderSpacing.OnChange' - +#13#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'ImportButton'#7'OnClick'#7 - +#17'ImportButtonClick'#8'TabOrder'#2#2#4'Left'#2#6#6'Height'#2#25#3'Top'#3 - +#245#0#5'Width'#3#239#0#0#0#7'TButton'#12'ExportButton'#5'Align'#7#8'alBotto' - +'m'#22'BorderSpacing.OnChange'#13#20'BorderSpacing.Around'#2#6#7'Caption'#6 - +#12'ExportButton'#7'OnClick'#7#17'ExportButtonClick'#8'TabOrder'#2#3#4'Left' - +#2#6#6'Height'#2#25#3'Top'#3#20#1#5'Width'#3#239#0#0#0#0#9'TGroupBox'#20'Ava' - +'ilablePkgGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#22'Border' - +'Spacing.OnChange'#13#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'Available' - +'PkgGroupBox'#12'ClientHeight'#3'3'#1#11'ClientWidth'#3#251#0#11'ParentColor' - +#9#8'TabOrder'#2#1#4'Left'#3#11#1#6'Height'#3'E'#1#3'Top'#2#6#5'Width'#3#255 - +#0#0#8'TListBox'#16'AvailableListBox'#5'Align'#7#8'alClient'#22'BorderSpacin' - +'g.OnChange'#13#20'BorderSpacing.Around'#2#6#16'ClickOnSelChange'#8#11'Multi' - +'Select'#9#17'OnSelectionChange'#7#31'AvailableListBoxSelectionChange'#8'Tab' - +'Order'#2#0#4'Left'#2#6#6'Height'#3#8#1#3'Top'#2#6#5'Width'#3#239#0#0#0#7'TB' - +'utton'#18'AddToInstallButton'#5'Align'#7#8'alBottom'#22'BorderSpacing.OnCha' - +'nge'#13#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'AddToInstallButton'#7 - +'OnClick'#7#23'AddToInstallButtonClick'#8'TabOrder'#2#1#4'Left'#2#6#6'Height' - +#2#25#3'Top'#3#20#1#5'Width'#3#239#0#0#0#0#7'TButton'#12'CancelButton'#7'Anc' - +'hors'#11#6'akLeft'#8'akBottom'#0#8'AutoSize'#9#22'BorderSpacing.OnChange'#13 - +#6'Cancel'#9#7'Caption'#6#12'CancelButton'#11'ModalResult'#2#2#8'TabOrder'#2 - +#2#4'Left'#2#6#6'Height'#2#25#3'Top'#3'R'#1#5'Width'#2'T'#0#0#7'TButton'#20 - +'SaveAndRebuildButton'#7'Anchors'#11#8'akBottom'#0#8'AutoSize'#9#22'BorderSp' - +'acing.OnChange'#13#7'Caption'#6#20'SaveAndRebuildButton'#7'OnClick'#7#18'In' - +'stallButtonClick'#8'TabOrder'#2#3#4'Left'#3#199#0#6'Height'#2#25#3'Top'#3'R' - +#1#5'Width'#3#130#0#0#0#7'TButton'#17'SaveAndExitButton'#7'Anchors'#11#7'akR' - +'ight'#8'akBottom'#0#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#7'Caption'#6 - +#17'SaveAndExitButton'#7'OnClick'#7#22'SaveAndExitButtonClick'#8'TabOrder'#2 - +#4#4'Left'#3#153#1#6'Height'#2#25#3'Top'#3'R'#1#5'Width'#2'q'#0#0#0 + 'TPF0'#20'TInstallPkgSetDialog'#19'InstallPkgSetDialog'#13'ActiveControl'#7#14 + +'InstallListBox'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Caption'#6#19'Install' + +'PkgSetDialog'#12'ClientHeight'#3#185#1#11'ClientWidth'#3#17#2#8'OnCreate'#7 + +#25'InstallPkgSetDialogCreate'#9'OnDestroy'#7#26'InstallPkgSetDialogDestroy' + +#8'OnResize'#7#25'InstallPkgSetDialogResize'#13'PixelsPerInch'#2'`'#18'HorzS' + +'crollBar.Page'#3#16#2#18'VertScrollBar.Page'#3#184#1#4'Left'#3'?'#1#6'Heigh' + +'t'#3#185#1#3'Top'#3#178#0#5'Width'#3#17#2#0#9'TGroupBox'#18'InstallPkgGroup' + +'Box'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around' + +#2#6#7'Caption'#6#18'InstallPkgGroupBox'#12'ClientHeight'#3#17#1#11'ClientWi' + +'dth'#3#251#0#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3'#'#1#3'Top'#2#6#5'Widt' + +'h'#3#255#0#0#8'TListBox'#14'InstallListBox'#5'Align'#7#8'alClient'#20'Borde' + +'rSpacing.Around'#2#6#16'ClickOnSelChange'#8#11'MultiSelect'#9#17'OnSelectio' + +'nChange'#7#29'InstallListBoxSelectionChange'#8'TabOrder'#2#0#4'Left'#2#6#6 + +'Height'#3#168#0#3'Top'#2#6#5'Width'#3#239#0#0#0#7'TButton'#15'UninstallButt' + +'on'#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#25'BorderSpacing.In' + +'nerBorder'#2#2#7'Caption'#6#15'UninstallButton'#7'OnClick'#7#20'UninstallBu' + +'ttonClick'#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2#25#3'Top'#3#180#0#5'Widt' + +'h'#3#239#0#0#0#7'TButton'#12'ImportButton'#5'Align'#7#8'alBottom'#20'Border' + +'Spacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#12'Impor' + +'tButton'#7'OnClick'#7#17'ImportButtonClick'#8'TabOrder'#2#2#4'Left'#2#6#6'H' + +'eight'#2#25#3'Top'#3#211#0#5'Width'#3#239#0#0#0#7'TButton'#12'ExportButton' + +#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerB' + +'order'#2#2#7'Caption'#6#12'ExportButton'#7'OnClick'#7#17'ExportButtonClick' + +#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#2#25#3'Top'#3#242#0#5'Width'#3#239#0#0 + +#0#0#9'TGroupBox'#20'AvailablePkgGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#8 + +'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'AvailablePkgGroupB' + +'ox'#12'ClientHeight'#3#17#1#11'ClientWidth'#3#251#0#8'TabOrder'#2#1#4'Left' + +#3#11#1#6'Height'#3'#'#1#3'Top'#2#6#5'Width'#3#255#0#0#8'TListBox'#16'Availa' + +'bleListBox'#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#16'ClickOnS' + +'elChange'#8#11'MultiSelect'#9#17'OnSelectionChange'#7#31'AvailableListBoxSe' + +'lectionChange'#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3#230#0#3'Top'#2#6#5'W' + +'idth'#3#239#0#0#0#7'TButton'#18'AddToInstallButton'#5'Align'#7#8'alBottom' + +#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6 + +#18'AddToInstallButton'#7'OnClick'#7#23'AddToInstallButtonClick'#8'TabOrder' + +#2#1#4'Left'#2#6#6'Height'#2#25#3'Top'#3#242#0#5'Width'#3#239#0#0#0#0#7'TBut' + +'ton'#12'CancelButton'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#8'AutoSize'#9#25 + +'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6#12'CancelButton'#11 + +'ModalResult'#2#2#8'TabOrder'#2#2#4'Left'#2#6#6'Height'#2#29#3'Top'#3#146#1#5 + +'Width'#2'X'#0#0#7'TButton'#20'SaveAndRebuildButton'#7'Anchors'#11#8'akBotto' + +'m'#0#8'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#20'SaveAn' + +'dRebuildButton'#7'OnClick'#7#18'InstallButtonClick'#8'TabOrder'#2#3#4'Left' + +#3#197#0#6'Height'#2#29#3'Top'#3#146#1#5'Width'#3#135#0#0#0#7'TButton'#17'Sa' + +'veAndExitButton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#25'Bo' + +'rderSpacing.InnerBorder'#2#2#7'Caption'#6#17'SaveAndExitButton'#7'OnClick'#7 + +#22'SaveAndExitButtonClick'#8'TabOrder'#2#4#4'Left'#3#150#1#6'Height'#2#29#3 + +'Top'#3#146#1#5'Width'#2't'#0#0#9'TGroupBox'#15'PkgInfoGroupBox'#7'Anchors' + +#11#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#15'PkgInfoGroupBox'#12'C' + +'lientHeight'#2'C'#11'ClientWidth'#3#255#1#8'TabOrder'#2#5#4'Left'#2#7#6'Hei' + +'ght'#2'U'#3'Top'#3'2'#1#5'Width'#3#3#2#0#5'TMemo'#11'PkgInfoMemo'#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ReadOnly'#9#10'ScrollBars' + +#7#14'ssAutoVertical'#8'TabOrder'#2#0#4'Left'#2#5#6'Height'#2'7'#3'Top'#2#5#5 + +'Width'#3#244#1#0#0#0#0 ]); diff --git a/packager/installpkgsetdlg.pas b/packager/installpkgsetdlg.pas index 475b97d811..b9cdad8124 100644 --- a/packager/installpkgsetdlg.pas +++ b/packager/installpkgsetdlg.pas @@ -42,7 +42,7 @@ uses StdCtrls, Buttons, FileUtil, AVL_Tree, Laz_XMLCfg, LazarusIDEStrConsts, EnvironmentOpts, InputHistory, LazConf, IDEProcs, - PackageDefs, PackageSystem; + PackageDefs, PackageSystem, PackageLinks; type TOnCheckInstallPackageList = @@ -56,6 +56,8 @@ type AvailablePkgGroupBox: TGroupBox; CancelButton: TButton; ExportButton: TButton; + PkgInfoMemo: TMemo; + PkgInfoGroupBox: TGroupBox; ImportButton: TButton; SaveAndRebuildButton: TButton; InstallListBox: TListBox; @@ -79,6 +81,7 @@ type FOnCheckInstallPackageList: TOnCheckInstallPackageList; fPackages: TAVLTree;// tree of TLazPackageID (all available packages and links) FRebuildIDE: boolean; + FSelectedPkg: TLazPackage; procedure SetOldInstalledPackages(const AValue: TPkgDependency); procedure AssignOldInstalledPackagesToList; procedure UpdateAvailablePackages; @@ -88,6 +91,7 @@ type procedure ClearNewInstalledPackages; function CheckSelection: boolean; procedure UpdateButtonStates; + procedure UpdatePackageInfo(List: TListBox); function NewInstalledPackagesContains(APackageID: TLazPackageID): boolean; function IndexOfNewInstalledPackageID(APackageID: TLazPackageID): integer; function IndexOfNewInstalledPkgByName(const APackageName: string): integer; @@ -142,12 +146,15 @@ begin UninstallButton.Caption:=lisUninstallSelection; InstallPkgGroupBox.Caption:=lisPackagesToInstallInTheIDE; AddToInstallButton.Caption:=lisInstallSelection; + PkgInfoGroupBox.Caption := lisPackageInfo; SaveAndRebuildButton.Caption:=lisSaveAndRebuildIDE; SaveAndExitButton.Caption:=lisSaveAndExitDialog; CancelButton.Caption:=dlgCancel; fPackages:=TAVLTree.Create(@CompareLazPackageIDNames); FNewInstalledPackages:=TList.Create; + + PkgInfoMemo.Clear; end; procedure TInstallPkgSetDialog.InstallButtonClick(Sender: TObject); @@ -161,6 +168,7 @@ procedure TInstallPkgSetDialog.AvailableListBoxSelectionChange(Sender: TObject; User: boolean); begin UpdateButtonStates; + UpdatePackageInfo(AvailableListBox); end; procedure TInstallPkgSetDialog.ExportButtonClick(Sender: TObject); @@ -281,6 +289,7 @@ procedure TInstallPkgSetDialog.InstallListBoxSelectionChange(Sender: TObject; User: boolean); begin UpdateButtonStates; + UpdatePackageInfo(InstallListBox); end; procedure TInstallPkgSetDialog.InstallPkgSetDialogDestroy(Sender: TObject); @@ -297,8 +306,8 @@ var begin x := 6; w := (ClientWidth - 3 * x) div 2; - InstallPkgGroupBox.SetBounds(x, x, w, Height - 48); - AvailablePkgGroupBox.SetBounds(2 * x + w, x, w, Height - 48); + InstallPkgGroupBox.SetBounds(x, x, w, Height - 150); + AvailablePkgGroupBox.SetBounds(2 * x + w, x, w, Height - 150); SaveAndRebuildButton.Left := (Width - SaveAndRebuildButton.Width) div 2 ; end; @@ -492,6 +501,45 @@ begin SaveAndRebuildButton.Enabled:=ListChanged; end; +procedure TInstallPkgSetDialog.UpdatePackageInfo(List: TListBox); +var + PkgName: String; + PkgID: TLazPackageID; + Author: String; + Description: String; +begin + if List = nil then Exit; + PkgName := ''; + if List.ItemIndex >= 0 then + PkgName := List.Items[List.ItemIndex]; + + if PkgName = '' then Exit; + if Assigned(FSelectedPkg) then + if PkgName = FSelectedPkg.IDAsString then Exit; + + PkgInfoMemo.Clear; + PkgID := TLazPackageID.Create; + try + PkgID.StringToID(PkgName); + FSelectedPkg := PackageGraph.FindPackageWithID(PkgID); + + if FSelectedPkg <> nil then begin + Author:=FSelectedPkg.Author; + Description:=FSelectedPkg.Description; + end else begin + // package not loaded -> read valuesform .lpk + // TODO + end; + if Author<>'' then + PkgInfoMemo.Lines.Add(lisPckOptsAuthor + ': ' + Author); + if Description<>'' then + PkgInfoMemo.Lines.Add(lisPckOptsDescriptionAbstract + + ': ' + Description); + finally + PkgId.Free; + end; +end; + function TInstallPkgSetDialog.NewInstalledPackagesContains( APackageID: TLazPackageID): boolean; begin