Difference between revisions of "Lazarus Custom Drawn Controls"
Sekelsenmat (talk | contribs) |
Sekelsenmat (talk | contribs) |
||
Line 65: | Line 65: | ||
Substitutes TPageControl | Substitutes TPageControl | ||
− | + | [[Image:TCDPageControl.png]] | |
==Custom Drawn Packages== | ==Custom Drawn Packages== |
Revision as of 07:01, 11 November 2011
The Lazarus Custom Drawn Controls are a set of controls equivalent to the standard Lazarus controls, but which draw themselves. They can have many uses, including the ability to fully customize the drawing, the ability to have exactly the same look in different platforms and also a higher consistency of behavior.
This set of controls is divided into two parts:
- the custom drawn controls which are necessary for implementing Lazarus widgetsets and will in future be located in the unit lazarus/lcl/customdrawncontrols.pas. These are described here.
- all other custom drawn controls, which are used often, but aren't indispensable to implement a LCL custom drawn widgetset. Those are located in the package lazarus/components/customdrawn. These are described in the page Lazarus Custom Drawn Package
At the moment all custom drawn controls are in the customdrawn package.
How do these components work?
The basic programming technique utilized by this set of controls is explained in the page Developing with Graphics#Create a custom control which draws itself. Besides using a TCustomControl descendent, these components also use a TLazIntfImage and TFPImageCanvas instead of the usual TCanvas, in order to have a drawing precisely equal among platforms, as well as the possibility of fast pixel access. This programming technique is described in Developing with Graphics#Working with TLazIntfImage.
Custom drawn controls which duplicate LCL controls
TCDButton
This is a fully custom drawn button.
Usage example:
<delphi> uses customdrawnextras;
procedure TForm1.FormCreate(Sender: TObject); var
MyButton: TCDButton;
begin
MyButton := TCDButton.Create(Self); MyButton.Parent := Self; MyButton.DrawStyle := dsWin2000; MyButton.Left := 100; MyButton.Top := 100; MyButton.Width := 200; MyButton.Height := 50; MyButton.Caption := 'My Button'; MyButton.Color := clRed; MyButton.OnClick := @HandleButtonClick;
end; </delphi>
TCDCheckBox
This is a fully custom drawn check box.
TCDGroupBox
This is a fully custom drawn group box.
TCDTrackBar
Substitutes TTrackBar
TCDTabControl
Substitutes TTabControl
TCDPageControl
Substitutes TPageControl
Custom Drawn Packages
Moved here: Lazarus Custom Drawn Package
Other good custom drawn components for Lazarus
Maintainers
- Felipe Monteiro de Carvalho
- JiXian Yang