Difference between revisions of "ATTabs/ru"
Line 22: | Line 22: | ||
* В этом обработчике событий: а) скройте все фреймы, б) покажите фрейм, который назначен текущему TabIndex. | * В этом обработчике событий: а) скройте все фреймы, б) покажите фрейм, который назначен текущему TabIndex. | ||
− | Во время создания новой вкладки вы можете задать ее свойство TabObject. Задайте TabObject для фрейма. Когда | + | Во время создания новой вкладки вы можете задать ее свойство <code>TabObject</code>. Задайте <code>TabObject</code> для фрейма. Когда будет вызван <code>OnChange</code>, получите <code>TabIndex</code>, вызовите <code>GetTabData()</code> для этого индекса и прочитайте <code>TabObject</code> для этой вкладки. Покажите фрейм, который хранится в этом <code>TabObject</code>, скрыв все остальные. |
<syntaxhighlight lang=pascal> | <syntaxhighlight lang=pascal> |
Latest revision as of 22:32, 9 July 2020
│
Deutsch (de) │
English (en) │
русский (ru) │
О компоненте
ATTabs является компонентом управления вкладками для Delphi и Lazarus. Он не заменяет стандартные элементы управления вкладки, а является их альтернативой, у него другой API. Он рисует вкладки OS-независимыми, используя пользовательскую отрисовку на холсте.
Скриншоты:
Автор: Алексей Торгашин
Справка
Страница GitHub содержит файлы справки, которые описывают большинство событий/свойств. Она также показывает пример кода, как создавать вкладки во время выполнения. https://github.com/Alexey-T/ATFlatControls/tree/master/wiki
Как использовать его в виде TPageControl
Создайте новую панель, которая будет похожа на TPageControl. Поместите ATTabs на нее, сделайте Align=alTop
. Теперь создайте несколько форм или фреймов на этой панели (у каждой из них должно быть Parent:=Panel1; Align:=alClient;
). Как переключать эти фреймы при смене вкладок?
- Добавьте обработчик события OnChange для вкладки.
- В этом обработчике событий: а) скройте все фреймы, б) покажите фрейм, который назначен текущему TabIndex.
Во время создания новой вкладки вы можете задать ее свойство TabObject
. Задайте TabObject
для фрейма. Когда будет вызван OnChange
, получите TabIndex
, вызовите GetTabData()
для этого индекса и прочитайте TabObject
для этой вкладки. Покажите фрейм, который хранится в этом TabObject
, скрыв все остальные.
var
d: TATTabData;
begin
d:= t.GetTabData(t.TabIndex);
if Assigned(d) then
(d.TabObject as TMyFrame).Show;
end;
Лицензия
License: MPL 2.0. Также вы можете использовать его под LGPL.
Загрузить
Последняя версия всегда доступна по адресу https://github.com/Alexey-T/ATTabs. Вы можете установить ее в IDE или даже не устанавливать (просто скопируйте файл attabs.pas в свой проект).
Требования
Lazarus: 1.6+.
Протестировано на: Windows, Linux GTK2/QT, macOS (10.8).