Difference between revisions of "ATTabs"

From Free Pascal wiki
Jump to navigationJump to search
Line 14: Line 14:
  
 
Make some new panel, which will be like TPageControl. Place ATTabs on it, make Align=alTop.
 
Make some new panel, which will be like TPageControl. Place ATTabs on it, make Align=alTop.
Now you create several Forms or Frames onto this panel (they will have Parent:=Panel1).
+
Now you create several Forms or Frames onto this panel (they have Parent:=Panel1).
 
How to switch these frames on changing tabs?
 
How to switch these frames on changing tabs?
 +
 +
1) Add tabs OnChange event handler.
 +
2) In this event handler make a) hiding all frames, b) showing frame, which is assigned to current TabIndex.
 +
 +
When you create a new tab, you can set its TabObject property. Set TabObject to a frame. When OnChage occurs, get TabIndex, call GetTabData for this index, and read TabObject for this tab. Show frame, which is stored in this TabObject, hide all others.
  
 
= License =
 
= License =

Revision as of 16:41, 28 March 2017

Deutsch (de) English (en) русский (ru)

About

ATTabs is a tab-control component for Delphi and Lazarus. It's not replacement for standard tab control, but is alternative one, it has different API. It paints tabs OS-indenendant, using custom drawing on canvas.

Screenshot:

ATTabs demo.png

Author: Alexey Torgashin

How to use it like TPageControl

Make some new panel, which will be like TPageControl. Place ATTabs on it, make Align=alTop. Now you create several Forms or Frames onto this panel (they have Parent:=Panel1). How to switch these frames on changing tabs?

1) Add tabs OnChange event handler. 2) In this event handler make a) hiding all frames, b) showing frame, which is assigned to current TabIndex.

When you create a new tab, you can set its TabObject property. Set TabObject to a frame. When OnChage occurs, get TabIndex, call GetTabData for this index, and read TabObject for this tab. Show frame, which is stored in this TabObject, hide all others.

License

License: MPL 2.0. Also if your project needs it, you can use it under LGPL.

Download

Latest version, with demo app, is always at https://github.com/Alexey-T/ATTabs

  • Download the zip file from Github using "Download zip" button.
  • No installation into Lazarus needed, just unpack file ATTabs.pas to any folder.

Requirements

Lazarus: 1.2.0+

Tested on: Win32 (Windows 7), Linux GTK2 or QT (Ubuntu 14.04), macOS (10.8).

Usage

Component doesn't support Lazarus designer, you need to create TATTabs objects at runtime. See API documentation at "Wiki" page of Github page.