lazarus/components/onlinepackagemanager/opkman_optionsfrm.pas

622 lines
21 KiB
ObjectPascal

{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. *
* *
***************************************************************************
Author: Balázs Székely
Abstract:
Implementation of the options dialog.
}
unit opkman_optionsfrm;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Math, Graphics, Classes,
// ideintf
MacroIntf, IDEImagesIntf,
// LCL
Forms, Controls, Dialogs, StdCtrls, ExtCtrls, Spin, ComCtrls, EditBtn, Menus,
ButtonPanel, Buttons,
// LazUtils
LazFileUtils,
// OpkMan
opkman_options, opkman_common, opkman_const, opkman_repositories, opkman_colorsfrm;
type
{ TOptionsFrm }
TOptionsFrm = class(TForm)
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
bFilesAdd: TButton;
bFilesDelete: TButton;
bFilesEdit: TButton;
bFoldersAdd: TButton;
bFoldersDelete: TButton;
bFoldersEdit: TButton;
bOpen: TButton;
bpOptions: TButtonPanel;
bColors: TButton;
cbIncompatiblePackages: TCheckBox;
cbAlreadyInstalledPackages: TCheckBox;
cbLoadJsonLocally: TCheckBox;
cbProxy: TCheckBox;
cbForceDownloadExtract: TCheckBox;
cbDeleteZipAfterInstall: TCheckBox;
cbCheckForUpdates: TComboBox;
cbUseDefaultTheme: TCheckBox;
cbRemoteRepository: TComboBox;
cbSelectProfile: TComboBox;
cbRegularIcons: TCheckBox;
edLocalRepositoryUpdate: TDirectoryEdit;
edLocalRepositoryPackages: TDirectoryEdit;
edLocalRepositoryArchive: TDirectoryEdit;
edProxyPassword: TEdit;
edProxyServer: TEdit;
edProxyUser: TEdit;
gbProxySettings: TGroupBox;
lbConTimeOut: TLabel;
lbFilterDirs: TLabel;
lbFilterFiles: TLabel;
lbLastUpdate: TLabel;
lbSelectProfile: TLabel;
lbUpdates: TLabel;
lbLocalRepositoryArchive: TLabel;
lbLocalRepositoryUpdate: TLabel;
lbRemoteRepository: TLabel;
lbServer: TLabel;
lbLocalRepositoryPackages: TLabel;
lbDaysToShowNewPackages: TLabel;
lbUserName: TLabel;
lbPort: TLabel;
lbPassword: TLabel;
lbExcludeFiles: TListBox;
lbExcludeFolders: TListBox;
pnRepositories: TPanel;
pnProfilesRight: TPanel;
pnProfilesTop: TPanel;
pnProfiles: TPanel;
pnFolders: TPanel;
pnProxy: TPanel;
pnGeneral: TPanel;
pgOptions: TPageControl;
pnBottom: TPanel;
pnProfilesMain: TPanel;
pnProfilesLeft: TPanel;
rbOpenSSL: TRadioGroup;
rbHintFormOptions: TRadioGroup;
SDD: TSelectDirectoryDialog;
seProxyPort: TSpinEdit;
spDaysToShowNewPackages: TSpinEdit;
spConTimeOut: TSpinEdit;
tsOpenSSL: TTabSheet;
tsFolders: TTabSheet;
tsProfiles: TTabSheet;
tsGeneral: TTabSheet;
tsProxy: TTabSheet;
procedure bColorsClick(Sender: TObject);
procedure bFilesAddClick(Sender: TObject);
procedure bFilesDeleteClick(Sender: TObject);
procedure bFilesEditClick(Sender: TObject);
procedure bOpenClick(Sender: TObject);
procedure cbProxyChange(Sender: TObject);
procedure cbSelectProfileChange(Sender: TObject);
procedure edLocalRepositoryPackagesButtonClick(Sender:TObject);
procedure edRemoteRepositoryKeyPress(Sender: TObject; var Key: char);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: char);
procedure HelpButtonClick(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
procedure pnProfilesMainResize(Sender: TObject);
procedure pnProfilesTopResize(Sender: TObject);
private
FHintFormOptionColors: TStringList;
function GetSelectedText(AListBox: TListBox; var AIndex: Integer): String;
procedure SetupColors;
public
procedure SetupControls(const AActivePageIndex: Integer = 0);
end;
var
OptionsFrm: TOptionsFrm;
implementation
{$R *.lfm}
{ TOptionsFrm }
procedure TOptionsFrm.bOpenClick(Sender: TObject);
var
I: Integer;
begin
RepositoriesFrm := TRepositoriesFrm.Create(Self);
try
if RepositoriesFrm.ShowModal = mrOk then
begin
cbRemoteRepository.Clear;
for I := 0 to Options.RemoteRepositoryTmp.Count - 1 do
cbRemoteRepository.Items.Add(Options.RemoteRepositoryTmp.Strings[I]);
if Options.ActiveRepositoryIndex <= cbRemoteRepository.Items.Count - 1 then
cbRemoteRepository.ItemIndex := Options.ActiveRepositoryIndex
else
begin
cbRemoteRepository.ItemIndex := 0;
Options.ActiveRepositoryIndex := 0;
end;
end;
finally
RepositoriesFrm.Free;
end;
end;
function TOptionsFrm.GetSelectedText(AListBox: TListBox; var AIndex: Integer): String;
var
I: Integer;
begin
Result := '';
for I := 0 to AListBox.Count - 1 do
begin
if AListBox.Selected[I] then
begin
Result := AListBox.Items.Strings[I];
AIndex := I;
Break;
end;
end;
end;
procedure TOptionsFrm.SetupColors;
begin
if not Options.UseDefaultTheme then
begin
Self.Color := clBtnFace;
tsGeneral.Color := clBtnFace;
tsProxy.Color := clBtnFace;
tsFolders.Color := clBtnFace;
tsProfiles.Color := clBtnFace;
pnGeneral.Color := clBtnFace;
pnProxy.Color := clBtnFace;
pnFolders.Color := clBtnFace;
pnProfiles.Color := clBtnFace;
lbExcludeFiles.Color := clBtnFace;
lbExcludeFolders.Color := clBtnFace;
end;
end;
procedure TOptionsFrm.bFilesAddClick(Sender: TObject);
var
Value: String;
Index: Integer;
ListBox: TListBox;
begin
case (Sender as TButton).Tag of
0: begin
ListBox := lbExcludeFiles;
Value := InputBox(rsOptions_InputBox_Caption, rsOptions_InputBox_Text0, '*.');
end;
1: begin
ListBox := lbExcludeFolders;
Value := InputBox(rsOptions_InputBox_Caption, rsOptions_InputBox_Text1, '');
end;
end;
if Value <> '' then
begin
Index := ListBox.Items.Add(Value);
ListBox.Selected[Index] := True;
end;
end;
procedure TOptionsFrm.bColorsClick(Sender: TObject);
begin
ColorsFrm := TColorsFrm.Create(Self);
try
if FHintFormOptionColors.Count > 0 then
ColorsFrm.LoadColors(FHintFormOptionColors)
else
ColorsFrm.LoadColors(Options.HintFormOptionColors);
if ColorsFrm.ShowModal = mrOK then
begin
FHintFormOptionColors.Clear;
FHintFormOptionColors.Add(ColorToString(ColorsFrm.shName.Brush.Color));
FHintFormOptionColors.Add(ColorToString(ColorsFrm.shDescription.Brush.Color));
FHintFormOptionColors.Add(ColorToString(ColorsFrm.shLicense.Brush.Color));
end;
finally
ColorsFrm.Free;
end;
end;
procedure TOptionsFrm.bFilesEditClick(Sender: TObject);
var
Value: String;
Index: Integer;
MsgInfo: String;
MsgTxt: String;
ListBox: TListBox;
begin
case (Sender as TButton).Tag of
0: begin
MsgInfo := rsOptions_InputBox_Info0;
MsgTxt := rsOptions_InputBox_Text0;
Listbox := lbExcludeFiles;
end;
1: begin
MsgInfo := rsOptions_InputBox_Info1;
MsgTxt := rsOptions_InputBox_Text1;
ListBox := lbExcludeFolders;
end;
end;
if ListBox.SelCount = 0 then
begin
MessageDlgEx(MsgInfo, mtInformation, [mbOk], Self);
ListBox.SetFocus;
Exit;
end;
Index := -1;
Value := InputBox(rsOptions_InputBox_Caption, MsgTxt, GetSelectedText(ListBox, Index));
if (Value <> '') and (Index <> -1) then
begin
ListBox.Sorted := False;
ListBox.Items[Index] := Value;
ListBox.Sorted := True;
Index := ListBox.Items.IndexOf(Value);
ListBox.Selected[Index] := True;
end;
end;
procedure TOptionsFrm.bFilesDeleteClick(Sender: TObject);
var
MsgConf: String;
MsgInfo: String;
ListBox: TListBox;
Value: String;
Index: Integer;
begin
case (Sender as TButton).Tag of
0: begin
MsgInfo := rsOptions_InputBox_Info0;
MsgConf := rsOptions_InputBox_Conf0;
ListBox := lbExcludeFiles;
end;
1: begin
MsgInfo := rsOptions_InputBox_Info1;
MsgConf := rsOptions_InputBox_Conf1;
ListBox := lbExcludeFolders;
end;
end;
if ListBox.SelCount = 0 then
begin
MessageDlgEx(MsgInfo, mtInformation, [mbOk], Self);
ListBox.SetFocus;
Exit;
end;
Index := -1;
Value := GetSelectedText(ListBox, Index);
if (Value <> '') and (Index <> -1) then
if MessageDlgEx(Format(MsgConf, [Value]), mtConfirmation, [mbYes, mbNo], Self) = mrYes then
ListBox.Items.Delete(Index);
end;
procedure TOptionsFrm.cbProxyChange(Sender: TObject);
begin
gbProxySettings.Enabled:= cbProxy.Checked;
end;
procedure TOptionsFrm.cbSelectProfileChange(Sender: TObject);
begin
pnProfilesMain.Visible := cbSelectProfile.ItemIndex = 1;
end;
procedure TOptionsFrm.edLocalRepositoryPackagesButtonClick(Sender:TObject);
var Sendert:TDirectoryEdit;
d:string;
begin
Sendert:=sender as TDirectoryEdit;
d:=Sendert.Directory;
IDEMacros.SubstituteMacros(d);
Sendert.Directory:=d;
end;
procedure TOptionsFrm.edRemoteRepositoryKeyPress(Sender: TObject; var Key: char);
begin
if Key = #13 then
OKButtonClick(bpOptions.OKButton);
end;
procedure TOptionsFrm.FormCreate(Sender: TObject);
begin
FHintFormOptionColors := TStringList.Create;
end;
procedure TOptionsFrm.FormDestroy(Sender: TObject);
begin
FHintFormOptionColors.Free;
end;
procedure TOptionsFrm.FormKeyPress(Sender: TObject; var Key: char);
begin
if Key = #27 then
Close;
end;
procedure TOptionsFrm.HelpButtonClick(Sender: TObject);
begin
if MessageDlgEx(rsOptions_RestoreDefaults_Conf, mtInformation, [mbYes, mbNo], Self) = mrYes then
begin
Options.LoadDefault;
Options.CreateMissingPaths;
SetupControls;
end;
end;
procedure TOptionsFrm.OKButtonClick(Sender: TObject);
var
I: Integer;
begin
ModalResult := mrNone;
if Trim(cbRemoteRepository.Text) = '' then
begin
MessageDlgEx(rsOptions_RemoteRepository_Information, mtInformation, [mbOk], Self);
cbRemoteRepository.SetFocus;
Exit;
end;
if cbProxy.Checked then
begin
if Trim(edProxyServer.Text) = '' then
begin
MessageDlgEx(rsOptions_ProxyServer_Info, mtInformation, [mbOk], Self);
edProxyServer.SetFocus;
Exit;
end;
if seProxyPort.Value = 0 then
begin
MessageDlgEx(rsOptions_ProxyPort_Info, mtInformation, [mbOk], Self);
seProxyPort.SetFocus;
Exit;
end;
end;
if Trim(edLocalRepositoryPackages.Text) = '' then
begin
MessageDlgEx(rsOptions_InvalidDirectory_Info, mtInformation, [mbOk], Self);
edLocalRepositoryPackages.SetFocus;
Exit;
end;
if Trim(edLocalRepositoryArchive.Text) = '' then
begin
MessageDlgEx(rsOptions_InvalidDirectory_Info, mtInformation, [mbOk], Self);
edLocalRepositoryArchive.SetFocus;
Exit;
end;
if Trim(edLocalRepositoryUpdate.Text) = '' then
begin
MessageDlgEx(rsOptions_InvalidDirectory_Info, mtInformation, [mbOk], Self);
edLocalRepositoryUpdate.SetFocus;
Exit;
end;
if Options.RemoteRepositoryTmp.Count > 0 then
Options.RemoteRepository.Text := Options.RemoteRepositoryTmp.Text;
Options.ActiveRepositoryIndex := cbRemoteRepository.ItemIndex;
Options.LoadJsonLocally := cbLoadJsonLocally.Checked;
Options.ForceDownloadAndExtract := cbForceDownloadExtract.Checked;
Options.ConTimeOut := spConTimeOut.Value;
Options.DeleteZipAfterInstall := cbDeleteZipAfterInstall.Checked;
Options.IncompatiblePackages := cbIncompatiblePackages.Checked;
Options.AlreadyInstalledPackages := cbAlreadyInstalledPackages.Checked;
Options.CheckForUpdates := cbCheckForUpdates.ItemIndex;
Options.DaysToShowNewPackages := spDaysToShowNewPackages.Value;
Options.ShowRegularIcons := cbRegularIcons.Checked;
Options.HintFormOption := rbHintFormOptions.ItemIndex;
Options.UseDefaultTheme := cbUseDefaultTheme.Checked;
Options.ProxyEnabled := cbProxy.Checked;
Options.ProxyServer := edProxyServer.Text;
Options.ProxyPort := seProxyPort.Value;
Options.ProxyUser := edProxyUser.Text;
Options.ProxyPassword := edProxyPassword.Text;
Options.OpenSSLDownloadType:= rbOpenSSL.ItemIndex;
Options.LocalRepositoryPackages := edLocalRepositoryPackages.Text;
Options.LocalRepositoryArchive := edLocalRepositoryArchive.Text;
Options.LocalRepositoryUpdate := edLocalRepositoryUpdate.Text;
if not DirectoryExists(Options.LocalRepositoryPackagesExpanded) then
ForceDirectories(Options.LocalRepositoryPackagesExpanded);
if not DirectoryExists(Options.LocalRepositoryArchiveExpanded) then
ForceDirectories(Options.LocalRepositoryArchiveExpanded);
if not DirectoryExists(Options.LocalRepositoryUpdateExpanded) then
ForceDirectories(Options.LocalRepositoryUpdateExpanded);
Options.UserProfile := cbSelectProfile.ItemIndex;
for I := 0 to lbExcludeFiles.Items.Count - 1 do
begin
if I = 0 then
Options.ExcludedFiles := lbExcludeFiles.Items[I]
else
Options.ExcludedFiles := Options.ExcludedFiles + ',' + lbExcludeFiles.Items[I];
end;
for I := 0 to lbExcludeFolders.Items.Count - 1 do
begin
if I = 0 then
Options.ExcludedFolders := lbExcludeFolders.Items[I]
else
Options.ExcludedFolders := Options.ExcludedFolders + ',' + lbExcludeFolders.Items[I];
end;
if FHintFormOptionColors.Count > 0 then
begin
Options.HintFormOptionColors.Clear;
Options.HintFormOptionColors.Text := FHintFormOptionColors.Text;
end;
Options.Save;
ModalResult := mrOk;
end;
procedure TOptionsFrm.SetupControls(const AActivePageIndex: Integer = 0);
var
I: Integer;
begin
Self.DoubleBuffered := True;
Caption := rsOptions_FrmCaption;
pgOptions.ActivePageIndex := AActivePageIndex;
tsGeneral.Caption := rsOptions_tsGeneral_Caption;
lbRemoteRepository.Caption := rsOptions_lbRemoteRepository_Caption;
Options.RemoteRepositoryTmp.Clear;
cbRemoteRepository.Clear;
for I := 0 to Options.RemoteRepository.Count - 1 do
cbRemoteRepository.Items.Add(Options.RemoteRepository.Strings[I]);
cbRemoteRepository.ItemIndex := Options.ActiveRepositoryIndex;
cbLoadJsonLocally.Checked := Options.LoadJsonLocally;
cbForceDownloadExtract.Checked := Options.ForceDownloadAndExtract;
cbDeleteZipAfterInstall.Checked := Options.DeleteZipAfterInstall;
cbIncompatiblePackages.Checked := Options.IncompatiblePackages;
cbAlreadyInstalledPackages.Checked := Options.AlreadyInstalledPackages;
cbLoadJsonLocally.Caption := rsOptions_cbLoadJsonLocally_Caption;
cbLoadJsonLocally.Hint := rsOptions_cbLoadJsonLocally_Hint;
cbForceDownloadExtract.Caption := rsOptions_cbForceDownloadExtract_Caption;
cbForceDownloadExtract.Hint := rsOptions_cbForceDownloadExtract_Hint;
lbConTimeOut.Caption := rsOptions_lbConTimeOut_Caption;
lbConTimeOut.Hint := rsOptions_lbConTimeOut_Hint;
spConTimeOut.Value := Options.ConTimeOut;
cbDeleteZipAfterInstall.Caption := rsOptions_cbDelete_Caption;
cbDeleteZipAfterInstall.Hint := rsOptions_cbDelete_Hint;
cbIncompatiblePackages.Caption := rsOption_cbIncompatiblePackage_Caption;
cbIncompatiblePackages.Hint := rsOption_cbIncompatiblePackage_Hint;
cbAlreadyInstalledPackages.Caption := rsOption_cbcbAlreadyInstalledPackages_Caption;
cbAlreadyInstalledPackages.Hint := rsOption_cbcbAlreadyInstalledPackages_Hint;
lbUpdates.Caption := rsOptions_lbCheckForUpdates_Caption;
cbCheckForUpdates.Clear;
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item0);
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item1);
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item2);
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item3);
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item4);
cbCheckForUpdates.Items.Add(rsOptions_cbCheckForUpdates_Item5);
cbCheckForUpdates.ItemIndex := Options.CheckForUpdates;
if CompareValue(Options.LastUpdate, 0.0, 0.1) <= 0 then
lbLastUpdate.Caption := rsOptions_lbLastUpdate_Caption + rsOptions_LastUpdate_Never
else
lbLastUpdate.Caption := rsOptions_lbLastUpdate_Caption + FormatDateTime('YYYY.MM.DD hh:mm:ss', Options.LastUpdate);
lbDaysToShowNewPackages.Caption := rsOptions_lbDaysToShowNewPackages_Caption;
spDaysToShowNewPackages.Value := Options.DaysToShowNewPackages;
cbRegularIcons.Checked := Options.ShowRegularIcons;
cbRegularIcons.Caption := rsOptions_cbRegular_Caption;
rbHintFormOptions.Caption := rsOptions_rbHintFormOptions_Caption;
rbHintFormOptions.Items.Clear;
rbHintFormOptions.Items.Add(rsOptions_rbHintFormOptions_Item0);
rbHintFormOptions.Items.Add(rsOptions_rbHintFormOptions_Item1);
rbHintFormOptions.Items.Add(rsOptions_rbHintFormOptions_Item2);
rbHintFormOptions.ItemIndex := Options.HintFormOption;
cbUseDefaultTheme.Checked := Options.UseDefaultTheme;
cbUseDefaultTheme.Caption := rsOptions_cbUseDefaultTheme_Caption;
tsProxy.Caption := rsOptions_tsProxy_Caption;
cbProxy.Caption := rsOptions_cbProxy_Caption;
gbProxySettings.Caption := rsOptions_gbProxySettings_Caption;
lbServer.Caption := rsOptions_lbServer_Caption;
lbPort.Caption := rsOptions_lbPort_Caption;
lbUserName.Caption := rsOptions_lbUsername_Caption;
lbPassword.Caption := rsOptions_lbPassword_Caption;
cbProxy.Checked := Options.ProxyEnabled;
gbProxySettings.Enabled := Options.ProxyEnabled;
edProxyServer.Text := Options.ProxyServer;
seProxyPort.Value := Options.ProxyPort;
//seProxyPort.Top := edProxyServer.Top + (edProxyServer.Height - seProxyPort.Height) div 2;
edProxyUser.Text := Options.ProxyUser;
edProxyPassword.Text := Options.ProxyPassword;
rbOpenSSL.Caption := rsOpenSSLFrm_lbMessage1_Caption;
rbOpenSSL.Items.Clear;
rbOpenSSL.Items.Add(rsOptions_rbOpenSSL_Item0);
rbOpenSSL.Items.Add(rsOptions_rbOpenSSL_Item1);
rbOpenSSL.Items.Add(rsOptions_rbOpenSSL_Item2);
rbOpenSSL.ItemIndex := Options.OpenSSLDownloadType;
{$IFDEF MSWINDOWS}
tsOpenSSL.TabVisible := True;
{$ELSE}
tsOpenSSL.TabVisible := False;
{$ENDIF}
tsFolders.Caption := rsOptions_tsFolders_Caption;
lbLocalRepositoryPackages.Caption := rsOptions_lbLocalRepositoryPackages_Caption;
edLocalRepositoryPackages.Hint := rsOptions_edLocalRepositoryPackages_Hint;
lbLocalRepositoryArchive.Caption := rsOptions_lbLocalRepositoryArchive_Caption;
edLocalRepositoryArchive.Hint := rsOptions_edLocalRepositoryArchive_Hint;
lbLocalRepositoryUpdate.Caption := rsOptions_lbLocalRepositoryUpdate_Caption;
edLocalRepositoryUpdate.Hint := rsOptions_edLocalRepositoryUpdate_Hint;
edLocalRepositoryPackages.Text := Options.LocalRepositoryPackages;
edLocalRepositoryArchive.Text := Options.LocalRepositoryArchive;
edLocalRepositoryUpdate.Text := Options.LocalRepositoryUpdate;
tsProfiles.Caption := rsOptions_tsProfiles_Caption;
lbSelectProfile.Caption := rsOptions_lbSelectProfile_Caption;
pnProfilesMain.DoubleBuffered := True;
pnProfilesLeft.DoubleBuffered := True;
pnProfilesTop.DoubleBuffered := True;
cbSelectProfile.Clear;
cbSelectProfile.Items.Add(rsOptions_cbSelectProfile_Item0);
cbSelectProfile.Items.Add(rsOptions_cbSelectProfile_Item1);
cbSelectProfile.ItemIndex := Options.UserProfile;
cbSelectProfile.Hint := rsOptions_cbSelectProfile_Hint;
lbFilterFiles.Caption := rsOptions_lbFilterFiles_Caption;
lbFilterDirs.Caption := rsOptions_lbFilterDirs_Caption;
bFilesAdd.Caption := rsOptions_bAdd_Caption;
bFilesEdit.Caption := rsOptions_bEdit_Caption;
bFilesDelete.Caption := rsOptions_bDelete_Caption;
bFoldersAdd.Caption := rsOptions_bAdd_Caption;
bFoldersEdit.Caption := rsOptions_bEdit_Caption;
bFoldersDelete.Caption := rsOptions_bDelete_Caption;
lbExcludeFiles.Hint := rsOptions_lbExcludeFiles_Hint;
lbExcludeFiles.Items.Delimiter := ',';
lbExcludeFiles.Items.StrictDelimiter := True;
lbExcludeFiles.Items.DelimitedText := Options.ExcludedFiles;
lbExcludeFolders.Hint := rsOptions_lbExcludeFolders_Hint;
lbExcludeFolders.Items.Delimiter := ',';
lbExcludeFolders.Items.StrictDelimiter := True;
lbExcludeFolders.Items.DelimitedText := Options.ExcludedFolders;
pnProfilesMain.Visible := Options.UserProfile = 1;
bColors.Caption := rsOptions_bColors_Caption;
bpOptions.HelpButton.Caption := rsOptions_bpOptions_bHelp;
IDEImages.AssignImage(bpOptions.HelpButton, 'restore_defaults');
bpOptions.HelpButton.Kind := bkCustom;
bpOptions.HelpButton.Glyph.Clear;
SetupColors;
end;
procedure TOptionsFrm.pnProfilesMainResize(Sender: TObject);
begin
pnProfilesLeft.Width := pnProfilesMain.Width div 2;
end;
procedure TOptionsFrm.pnProfilesTopResize(Sender: TObject);
begin
//cbSelectProfile.Left := lbSelectProfile.Left + lbSelectProfile.Width + 10;
end;
end.