Delphi and Lazarus
Trekking and Events
Blog and Forum
Čeština English
Main menu
Delphi and Lazarus
Top downloads

KControls Development Suite

KControls is a freeware distribution, a flagship of tkweb. It contains all of my published components for Delphi and Lazarus. All controls have been written with the aim to become both cross-IDE compatible (Delphi/C++Builder VCL and Lazarus LCL) and cross-platform compatible in Lazarus. There are some exceptions to this scheme, see below.

Components included
TKGrid - powerfull control for working with table data, replacement for TStringGrid and TDrawGrid - full compatibility and lot of new features
TKDBGrid - control for working with database tables, possible replacement for TDBGrid
TKHexEditor - powerfull control for binary file editing
TKIcon - powerfull component for working with icons and cursors (files *.ico and *.cur, works only on Windows)
TKPrintPreview - control for displaying print preview, it is part of KControls built in printing capabilities, every visual control supports printing and previewing
TKPrintPreviewDialog - nonvisual component - dialog - for an easy print preview implementation
TKPrintSetupDialog - nonvisual component - dialog - for an easy implementation of printing preferences
TKCustomControl - a base for your visual controls, for which you want to implement e.g. printing and previewing capabilities in Delphi or Lazarus (just 2 short functions to write).
TKNumberEdit - edit control to input numbers in various formats
TKFileNameEdit - edit control to input file names
TKLinkLabel - label to show clickable link
TKGradientLabel - label with gradient background
TKLog - component for event logging
TKPercentProgressBar - custom drawn progress bar which shows actual percentage of the progress
TKBrowseFolderDialog - wrapper for the standard Windows API browse for folder dialog (works only on Windows)
TKBitBtn - like TBitBtn - draws PNG and alpha channel correctly in Delphi, has WordWrap property, works in Lazarus as well
TKColorButton - just another button to pick color
TKMemo - native replacement for TMemo/TRichEdit - aim is to make cross-IDE compatible, easy to use richedit control, early alpha state, you may take a look at the demo but do not use yet!


KControls is provided free on 'as is' basis, with complete source code. However, it is licensed software. More information about license can be found in source file headers.

All controls support Delphi and Lazarus IDEs fully. But there are some exceptions: TKIcon and TKBrowseFolderDialog work only on Windows and printing and previewing might not work in some widgetsets in Lazarus.

Note about cross-platform development in Delphi: I strongly disagree with the way Embarcadero took with the FMX library to allow cross-platform development, so FMX will never be supported. As Lazarus has become very good IDE, in many aspects better than Delphi, I recommend you try it if you need cross platform features.


If you want to donate for further development of KControls just think about building your own photovoltaics and using the WATTrouter device produced by our company. You will save lots of energy and it will be the best donation to me you can make!

Screenshots (click the images to enlarge)

KControls components (Windows Vista)KControls components (Windows XP/GTK2runtine)

Downloading KControls

FileVersionNumber of
Available for:Changes
kcontrols_1.6.zip1.61697Delphi 6+,Lazarus 1.2.2+, C++Builder 2007+support for RAD Studio XE6, Columns property in TKDBGrid, bugfixes...
kcontrols_1.5.zip1.5254Delphi 6+,Lazarus 1.2.2+, C++Builder 2007+new components TKMemo, TKBitBtn, TKColorButton, some bugfixes...
kcontrols_1.4.zip1.4890Delphi 6+, Lazarus 0.9.29(SVN#21827)+, C++Builder 2007+support for RAD Studio XE3-XE5, new components etc.
kcontrols_1.3.zip1.32639Delphi 6+, Lazarus 0.9.29(SVN#21827)+, C++Builder 2007+support for RAD Studio XE2
kcontrols_1.2.zip1.23008Delphi 6+, Lazarus 0.9.29(SVN#21827)+, C++Builder 2007+cumulative update (KGrid 1.7, KHexEditor 1.5, KIcon 2.2)
kcontrols_1.1.zip1.11039Delphi 6+, Lazarus 0.9.29(SVN#21827)+, C++Builder 2007+cumulative update (KGrid 1.6, KHexEditor 1.4, KIcon 2.1)
kcontrols_1.0.zip1.01607Delphi 6+,Lazarus 0.9.29(SVN#21827)+initial release (KGrid 1.5, KHexEditor 1.4, KIcon 1.9)

Home | Software | Delphi and Lazarus | Trekking, travelling | Sport | Others | Blog

Search in comments: 
inserted: 2015-02-05 15:35:09   Reply...
From: DON
connecting zquery->datasource->kdbgrid get error ACCESS VIOLATION ?
inserted: 2015-01-03 15:27:40   Reply...
From: Marcio
In KGrid, when I make a row or column invisible it turns to a green line. Can I make it totally invisible or change this feature color?
inserted: 2015-01-08 20:04:42   Reply...
From: tk
Uncheck goIndicateHiddenCells in Options. This will disable the green line.
inserted: 2015-01-03 15:26:58   Reply...
From: Marcio
Hello. In KGrid, how can I change a ComboBox cell value not manually after the cells were created, by reading a file for example? And then, how to pick the index value of Combo Box cell?
inserted: 2014-11-06 19:20:51   Reply...
From: HobbyProgrammer
Thank you tk for your good work, I like your components in particular Tkmemo, i use lazarus and Tkmemo could be a good replacement for TRichEdit :) I use it to display Arabic text and everything is ok, but the calculation of the beginning and the end of the select text is incorrect since Arabic is written from right to left, if you can fix this problem I would be grateful :) thank you again and good continuation
inserted: 2015-01-08 20:06:03   Reply...
From: tk
TKMemo is not yet ready, please don't use it yet.
inserted: 2014-10-18 00:05:58   Reply...
From: Ivor
Do you have any examples of code in Windows Lazarus to show how to print preview in a program that currently prints directly to a printer Thanks
inserted: 2014-09-21 18:00:49   Reply...
From: Clericuzio
Please create correct packages for new Delphis, like XE6 or XE7, I had to update uses lists to namespace versions in all units to install components!
inserted: 2014-10-05 21:31:07   Reply...
From: tk
Won't be done to spare further ifdefs, have to support Lazarus as well... Use unit aliases or how the hell they are named in new Delphis...
inserted: 2014-10-05 21:37:46   Reply...
From: tk
Meant unit scope names in project options actually.
inserted: 2014-09-21 17:58:23   Reply...
From: Clericuzio
TKHexEditor looks to do not store AddressPrefix property if it set to EmptyStr.
inserted: 2014-09-17 20:51:36   Reply...
From: DwnTwn
Some KDBGrid inspector controls don't seem to have impact. Example: Table Font - while Use Parent Font is false, new setting seem to have no impact. Have not yet attempted font-changes via code.
inserted: 2014-09-17 20:49:05   Reply...
From: DwnTwn
Any examples (please point to link) using KDBGrid and cell-wordwrap? Any comprehensive (English) documentation?
inserted: 2015-01-08 20:08:01   Reply...
From: tk
There is help file in the package, using advanced features needs some testing on your side, can't describe everything...
inserted: 2014-09-15 00:34:30   Reply...
From: wadeauch
Thanks for your great work on TKIcon. I have identified a memory leak (latest version, and XE6) procedure TKIcon.CopyToPng(Index: Integer; Png: TKPngImage); ... Png.CreateBlank(COLOR_RGBALPHA, 8, ID.Width, ID.Height); Calling the CreateBlank constructor like this on an instance is risky and in this case the ChunkList in TPngImage does not get freed before creating a new instance. It needs to be replaced with something like this: Temp := TPngImage.CreateBlank(COLOR_RGBALPHA, 8, ID.Width, ID.Height); try Png.Assign(Temp); finally Temp.Free; end;
inserted: 2014-08-12 13:17:14   Reply...
From: Homerus
Any chance for a KDBTree component?
inserted: 2014-08-03 17:51:50   Reply...
From: hu
WordWrap does not work in KMemo,Is there a WordWrap and Table support planned?
inserted: 2014-08-04 11:17:56   Reply...
From: tk
Please don't use TKMemo yet! There will be massive changes (text layouts, image layouts, tables, left and right floats etc.).
inserted: 2014-08-03 08:54:09   Reply...
From: leledumbo
A little adjustment for Lazarus svn required in kgraphics: procedure TKHintWindow.ShowAt(const Origin: TPoint); begin // was ActivateHint in latest stable (1.2.4) or below ActivateWithBounds(Rect(Origin.X, Origin.Y, Origin.X + FExtent.X + 10, Origin.Y + FExtent.Y + 10), ''); end; I can't seem to find on which revision it happens.
inserted: 2014-08-04 11:38:35   Reply...
From: tk
Such changes will not be introduced in official KControls package unless there is stable Lazarus release which supports it. Please always adapt your copy if you want this feature to be compatible with SVN trunk.
inserted: 2014-07-26 16:19:00   Reply...
From: ED
how do you set columns properties please
inserted: 2014-07-27 12:52:32   Reply...
From: tk
Columns property implemented in v1.6, not 100% compatible with Delphi but I think it is usable. Check the demo.
inserted: 2014-07-26 06:33:36   Reply...
From: matsky
Is there a win64 support planned? When i try to install package there are errors on pointers casting and asm32 (mov eax instead of movd eax or mov rax & things like that on asm64).
inserted: 2014-07-27 12:51:33   Reply...
From: tk
Has been fixed in v1.6, ASMs removed. I don't know what you mean with pointer castings. I am able to install package in Delphi XE6 or Lazarus 64 bits and compile and run my demos under 64 bits.
inserted: 2014-07-18 10:48:26   Reply...
From: sky
I'd be VERY interested in a Columns editor as well.
inserted: 2014-07-27 12:45:31   Reply...
From: tk
Implemented in v1.6, not 100% compatible with Delphi but usable. Check the demo.
inserted: 2014-07-27 15:23:45   Reply...
From: sky
Thank you!!
inserted: 2014-07-18 00:09:26   Reply...
From: slaca
Do you plan on supporting Rad XE6? Currently package not installable. Thanks
inserted: 2014-07-27 12:46:57   Reply...
From: tk
Has been fixed in v 1.6.
inserted: 2014-07-25 15:15:41   Reply...
From: tk
Will be fixed soon. But I am really tired of these Delphi upgrades... Lazarus is so straightforward with upgrades, besides that you can use SVN, extremely fast way to upgrade...
inserted: 2014-07-25 16:56:18   Reply...
From: snorkel
Yes, Lazarus is way better than delphi for upgrades. When a new version comes out I just install it then rebuild the IDE and everything is back, no more installing every freaking package. I don't even use Delphi anymore, just not worth it when Lazarus is so good.
inserted: 2014-07-14 11:18:41   Reply...
From: djleshouze
how I can use the PrintPreview component ? do you have any examples ?
inserted: 2014-06-30 12:15:51   Reply...
From: JD
I can't install the KControls 1.4 in Linux. The previous version (Version 1.3) worked though.
inserted: 2014-07-06 10:59:13   Reply...
From: tk
Will be fixed soon.
inserted: 2014-07-07 01:37:14   Reply...
From: tk
Should be fixed now.
inserted: 2014-06-10 10:03:53   Reply...
From: Guillaume
I'm using Lazarus 1.2.2 fpc 2.6.4 (linux) Impossible to install KControls 1.4 error: klog.pas unknow "Windows" Could you fixe it, thank you
inserted: 2014-07-06 10:59:05   Reply...
From: tk
Will be fixed soon.
inserted: 2014-07-07 01:37:55   Reply...
From: tk
Should be fixed in rev. 1.5
inserted: 2014-07-10 11:22:13   Reply...
From: Guillaume
Thank you very much
inserted: 2013-10-12 22:07:23   Reply...
From: kloje
How can I implement alternate row colors in TKDBGrid?
inserted: 2014-07-27 12:53:31   Reply...
From: tk
Use OnDrawCell event.
inserted: 2013-09-19 11:36:34   Reply...
From: ig
Can you tell about alignment in cells of kdbgrid?
inserted: 2014-07-27 12:54:29   Reply...
From: tk
Has been implemented through Columns property in v1.6. Just select HorzAlign for respective column.
inserted: 2014-06-05 14:47:38   Reply...
From: heru sudarto
{ answering this question i've tried using this trick to implement onDrawCell event. } procedure TForm1.MyGridDrawCell(Sender: TObject; ACol, ARow: Integer; R: TRect; State: TKGridDrawState); begin (Sender as TKGrid).Cell[ACol, ARow].ApplyDrawProperties; if (ARow<=((Sender as TKGrid).FixedRows)) then begin (Sender as TKGrid).CellPainter.Canvas.Font.Style:=[fsBold]; (Sender as TKGrid).CellPainter.HAlign:=halCenter; end; (Sender as TKGrid).CellPainter.DefaultDraw; end; { on 7:46 PM 5 June 2014, surabaya indonesia email }
inserted: 2013-09-13 00:56:13   Reply...
From: ivan
having problems setting the background color of individual cell in the oncelldraw event. do you have a example?
inserted: 2013-09-25 17:34:04   Reply...
From: xy
Here is an example (KGriddemo) procedure TForm1.KGrid3DrawCell(Sender: TObject; ACol, ARow: Integer; R: TRect; State: TKGridDrawState); begin if aRow = 4 then KGrid3.CellPainter.Canvas.brush.color:= $00D4FF7F; KGrid3.CellPainter.Text := A[ACol, ARow]; KGrid3.CellPainter.Attributes := [taEndEllipsis]; KGrid3.CellPainter.DefaultDraw; end;
inserted: 2013-02-20 15:15:02   Reply...
From: User2
Hello everybody,I am searching for the Delphi that can run on the Windows 7 OS.
inserted: 2013-01-17 11:12:25   Reply...
From: Dibo
Hi, I have some questions and suggestions (all about KDBGrid for Lazarus): Questions: 1. Mouse wheel is changing data position. How to avoid this? I want that mouse wheel should only move scrollbars (without dataset position changing). Lazarus grids has property MouseWheelOption. 2. I have option "row select" but I still see selected column (it has little darker color). How to disable it? Suggestions: 1. Bottom header line is missing, see screenshot (bottom grid is KGrid) . With bottom line KGrid will be more native. Regards
inserted: 2014-07-06 11:00:03   Reply...
From: tk
Will be fixed in new version.
inserted: 2014-07-07 02:18:15   Reply...
From: tk
Should be fixed in rev. 1.5, gxMouseWheelScroll vs. gxMouseWheelKey option.
inserted: 2013-01-14 19:34:47   Reply...
From: Luis
Hello, I installed KControls on Delphi 2010. I try to use TKDBGrid but I don't understand how to define the columns on TKDBGrid. There is not a ColumnsEditor like TDBGrid provided by VCL. Plesase, can you give me a brief explication or give me a tutorial other than the TKGrid present in Help Directory of downloaded file? Thanks
inserted: 2014-07-06 11:01:03   Reply...
From: tk
Yes this is still missing.
inserted: 2014-07-27 12:55:10   Reply...
From: tk
Implemented in v1.6, not 100% compatible with Delphi but usable. Check the demo.
inserted: 2012-12-17 10:59:19   Reply...
From: serhiyiv
Hi. Could you tell me please will make TKIcon compatible with Delphi XE3? If using 2.1 version with Delphi XE3 it won't display 256x256 PNG Icons. The files included in the kcontrols_1.3 won't compile because of [dcc32 Error] kicon.pas(380): E2003 Undeclared identifier: 'TKPngImage' Thank you.
inserted: 2012-12-13 00:00:54   Reply...
From: RubyMikey
Hi all, i'm using the KPrintSetupDialog and selecting pagesetup of Landscape does not work... thanks in advance for any help win7/lazarus Codetyphon
inserted: 2014-07-07 19:40:07   Reply...
From: tk
Should be fixed in rev. 1.5
inserted: 2012-11-27 12:00:06   Reply...
From: Faddistr
doesn't work under XE2
inserted: 2012-10-18 20:08:58   Reply...
From: mtbf40
If I open a empty DB the Header (fixed Row) won't view - with TDBGrid it functions - is this maybe a bug?
inserted: 2014-07-27 12:55:53   Reply...
From: tk
Should be fixed in v1.6
Older comments
My account
Recently modified

KControls Development Suite

by: tk



by: tk



by: tk



by: tk


KGrid 1.3 released.

by: tk


Recently inserted

Update for RAD Studio XE2

by: tk


KComponents as open source

by: tk


Problem with comments and logins

by: tk


KControls released

by: tk


Working hard on KGrid update...

by: tk



by: tk