Difference between revisions of "ATTabs/ru"

From Free Pascal wiki
Jump to navigationJump to search
 
Line 22: Line 22:
 
* В этом обработчике событий: а) скройте все фреймы, б) покажите фрейм, который назначен текущему TabIndex.
 
* В этом обработчике событий: а) скройте все фреймы, б) покажите фрейм, который назначен текущему TabIndex.
  
Во время создания новой вкладки вы можете задать ее свойство TabObject. Задайте TabObject для фрейма. Когда вызывается OnChange, получите TabIndex, вызовите GetTabData() для этого индекса и прочитайте 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-независимыми, используя пользовательскую отрисовку на холсте.

Скриншоты:

ATTabs demo.png

Автор: Алексей Торгашин

Справка

Страница 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).