Вкладка RX Tools. Компонент TMRUManager

   
На этом шаге мы рассмотрим компонент TMRUManager.

   
Если свойство AutoUpdate = True (по умолчанию), то при каждом изменении в списке для
пункта меню RecentMenu автоматически будет изменяться подменю с элементами списка.
Вы можете вручную привести меню в соответствие с содержимым списка, вызвав метод UpdateRecentMenu.
При создании пунктов меню по умолчанию создаются пункты с заголовком, совпадающим со строкой из списка,
которую вы передали в методе Add. Вы можете также обработать событие OnGetItemData
для изменения заголовка создаваемого пункта меню и задания его свойства ShortCut (по умолчанию scNone).

   
Если ShowAccelChar=True (по умолчанию), то в строку заголовка элемента меню будет добавлен
"подчеркнутый" символ, соответствующий порядковому номеру элемента ('1'..'9', 'A', 'B'... и т.д.).
Если значение свойства SeparateSize больше нуля, то в создаваемое подменю будут
добавлены разделители между каждыми SeparateSize элементами меню.
При выборе пользователем пункта меню из созданного подменю будет вызвано событие OnClick.

   
Для сохранения и восстановления списка в INI-файле или (в 32-разрядной версии) в системном
регистре воспользуйтесь свойством IniStorage или методами SaveToIni, LoadFromIni,
SaveToRegistry, LoadFromRegistry. Вы можете также использовать компонент TMRUManager
без подключения к меню, например, помещая список в TListBox или в TComboBox. В этом случае
вы должны сами заполнять списки этих элементов управления из списка TMRUManager,
который доступен в run-time через свойство Strings.

Таблица 1. Свойства и методы компонента TMRUManager

СвойствоОписание
property AutoUpdate: Boolean;Если свойство AutoUpdate = True (по умолчанию), то для пункта меню RecentMenu автоматически
будет изменяться подменю с элементами списка при каждом изменении в списке. Когда список пуст, пункт
меню RecentMenu будет запрещенным. Вы можете также вручную привести меню в соответствие с
содержимым списка, вызвав метод UpdateRecentMenu.
property RecentMenu: TMenuItem;Свойство задает пункт в меню, для которого будет создавать подменю со списком MRU-элементов.
При пустом списке элемент RecentMenu запрещается, если свойство AutoEnable равно True.
property AutoEnable: Boolean;Если свойство AutoEnable установлено в True, то пункт меню RecentMenu будет
автоматически разрешаться или запрещаться в зависимости от количества пунктов в нем (элементов в MRU-списке).
Свойство обычно используется, если пункт меню RecentMenu содержит только элементы из MRU-списка.
procedure Add(const RecentName: string; UserData: Longint);Метод служит для добавления строки в список MRU-элементов. Параметр UserData позволяет
вам ассоциировать с элементом некоторые ваши данные. В дальнейшем этот параметр будет передаваться в обработчики
событий OnClick, OnGetItemData, OnReadItem, OnWriteItem.
В зависимости от значения свойства Mode элемент будет добавлен либо в начало, либо в конец списка.
procedure Remove(const RecentName: string);Метод служит для удаления строки RecentName из списка. В качестве параметра RecentName
передается та же строка, что использовалась при добавлении строки в список. Если переданная строка не найдена в списке,
то метод не выполняет никаких действий. Вы можете, например, в приложении работы с файлами вызывать
метод Remove(FileName) при открытии окна с файлом, и метод Add(FileName, UserData) при закрытии окна с файлом.
property OnClick: TClickMenuEvent;Событие происходит при выборе пользователем пункта из подменю, созданного компонентой TMRUManager. В качестве
параметров в метод-обработчик события передаются заданные при добавлении элемента в список строка RecentName и значение
UserData, а также заголовок пункта меню Caption (который дополнительно может содержать символ-акселератор
или может быть изменен в обработчике события OnGetItemData).
property OnGetItemData: TGetItemEvent;При создании элементов подменю в RecentMenu по умолчанию создаются пункты с заголовком, совпадающим
со строкой из списка, которую вы передали в методе Add. Вы можете также обработать событие OnGetItemData
для изменения заголовка создаваемого пункта меню (параметр Caption) и задания его свойства ShortCut
(по умолчанию scNone).
property Capacity: Integer;Свойство задает общую максимальную емкость списка. Если при добавлении нового элемента будет превышена эта
величина, автоматически будет удален из списка наиболее старый (последний) элемент. Новый элемент всегда добавляется в
начало списка, если свойство Mode = rmInsert, и в конец списка, если Mode = rmAppend.
property Mode: TRecentMode;Свойство определяет, как будут добавляться элементы в список компоненты TMRUManager.
Если значение свойства равно rmInsert (по умолчанию), то вновь добавляемый элемент вставляется
в начало списка (или, если такой элемент уже существует, перемещается в начало списка). При значении
rmAppend добавляемый элемент появляется в конце списка.
property ShowAccelChar: Boolean;Если ShowAccelChar=True (по умолчанию), то в строку заголовка элемента меню будет добавлен
"подчеркнутый" символ, соответствующий порядковому номеру элемента ('1'..'9', 'A', 'B'... и т.д.), при этом первым
номером в списке считается значение свойства StartAccel. Этот символ будет использоваться как
акселератор для быстрого выбора соответствующего пункта меню.
property StartAccel: Cardinal;Если ShowAccelChar=True (по умолчанию), то в строку заголовка элемента меню будет добавлен
"подчеркнутый" символ, соответствующий порядковому номеру элемента ('1'..'9', 'A', 'B'... и т.д.), при этом первым
номером в списке считается значение свойства StartAccel (по умолчанию = 1).
property SeparateSize: Word;Свойство позволяет создавать разделители на равном расстоянии между пукнтами в меню RecentMenu.
Если значение свойства SeparateSize больше нуля, то в создаваемое подменю будут добавлены разделители
между каждыми SeparateSize элементами меню.
type TGetItemEvent = procedure (Sender: TObject; var Caption: string; var ShortCut: TShortCut; UserData: Longint) of object;Тип определяет процедуру - обработчик события OnGetItemData компонента TMRUManager.
procedure SaveToIni(Ini: TIniFile; const Section: string);Метод служит для сохранения в INI-файле списка компонента TMRUManager для последующего восстановления
его с помошью метода LoadFromIni. Список записывается в специфицированный INI-файл в секцию с именем,
возвращаемым функцией GetDefaultSection. Если вы задали значение свойству IniStorage, то список будет сохраняться
и восстанавливаться автоматически.
procedure LoadFromIni(Ini: TIniFile; const Section: string);Метод служит для восстановления из INI-файла списка компонента TMRUManager, если он был сохранен
там с помошью метода SaveToIni. Текущие установки не изменяются, если специфицированный INI-файл не содержит
данных об установках компоненты. Если вы задали значение свойству IniStorage, то список будет сохраняться и
восстанавливаться автоматически.
property IniStorage: TFormPlacement;Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или
(для 32-разрядной версии) в системном регистре при помощи компонентов TFormPlacement или TFormStorage.
При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не
являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться
и восстанавливаться одновременни с другими значениями, заданными для соответствующего компонента TFormPlacement (TFormStorage).

   
На следующем шаге мы рассмотрим компонент TSecretPanel.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий