- Base object TObj is
replacing TObject class in VCL. It has similar method Free, which allows to
release object safely (to ignore call with parameter nil), and also two methods RefInc
and RefDec to prevent freeing of object between to consequence calls of RefInc
and RefDec.
- Very important TList
object ("constructor": NewList:PList). Similar to
TList in VCL, allows to store pointers to any data (or numbers).
- Object TStrList to store
strings in dynamic array. Constructor: NewStrList:PStrList. Can work very fast with huge text arrays (millions lines a second).
- Object TTree to organize
data in memory (non-visual).
- Object type TGraphicTool
is implementing brush (NewBrush), font (NewFont)
and pen (NewPen) GDI objects (all in one, without deriving
three different object types like it is done in VCL or XCL). The most of code is included
only in case if your project accesses properties Font, Brush of TControl, or Font, Brush, Pen of TCanvas, or creates TGraphicTool
instances by itself.
Font is implemented even more power than in
VCL. Having property FontOrientation, it allows easy support rotated text (used
in label effect). Other additional properties are FontWidth, FontWeight.
Pen is implemented even more power than in VCL. Having property GeometricPen,
it allows easy implement high quality drawing with hatched or custom pen, tune up end
caps, join style etc.
- Object type TCanvas,
very similar to VCL TCanvas (but more smart and efficient). To draw onto existing DC, a
constructor is provided: NewCanvas( DC ): PCanvas.
- Object type TBitmap,
very similar to VCL's TBitmap. Constructors:
- NewBitmap( Width, Height
): PBitmap
- NewDIBBitmap( Width,
Height, PixelFormat ): PBitmap
- Object TImageList, very
similar to VCL TImageList. Constructor: NewImageList( AOwner:
PControl ): PImageList.
- The main object of KOL is TControl.
It can play role of any visual control depending on constructor
used to create its instance. Available constructing functions are following
(syntax consiuosly is not observed):
- NewApplet(
Caption: String ): PControl (Note: in KOL, it is not necessary,
if application has a single form, and there are no needs to hide application button on
taskbar).
- NewForm(
AParent: PControl ): PControl
- NewPanel(
AParent; EdgeStyle:{ esRaised, esLowered, esNone } ): PControl
- NewSplitter(
AParent; MinSize1, MinSize2: Integer ): PControl
NewSplitterEx( AParent, MinSize1, MinSize2, edgeStyle ):
PControl
- NewGroupbox(
AParent; Caption ): PControl
- NewLabel(
AParent; Caption ): PControl
- NewWordWrapLabel(
AParent; Caption ): PControl
- NewLabelEffect(
AParent; Caption; ShadowDeep: SmallInt ): PControl
- NewButton(
AParent; Caption ): PControl
- NewBitBtn(
aParent, aCaption, aOptions: [ bboImageList, bboNoBorder, bboNoCaption, bboFixed ],
aLayout: { glyphLeft, glyphTop, glyphRight, glyphBottom, glyphOver },
GlyphBmp_or_ImageList, GlyphCount__or__ImgIdx_and_GlyphCount_shl16
): PControl
- NewCheckbox(
AParent; Caption ): PControl
- NewRadiobox(
AParent; Caption ): PControl
- NewEditbox(
AParent; Options: Set of [ eoNoHScroll, eoNoVScroll, eoLowercase, eoMultiline,
eoNoHideSel, eoOemConvert, eoPassword, eoReadonly, eoUpperCase, eoWantReturn, eoWantTab
] ): PControl
- NewRichEdit(
AParent, Options ): PControl
- NewRichEdit1(
AParent, Options ): PControl
- NewListbox(
AParent; Options: Set of [ loNoHideScroll, loNoExtendSel, loMultiColumn,
loMultiSelect, loNoIntegralHeight, loNoSel, loSort, loTabstops ] ): PControl
- NewCombobox(
AParent; Options: Set of [ coReadOnly, coNoHScroll, coAlwaysVScroll,
coLowerCase, coNoIntegralHeight, coOemConvert, coSort, coUpperCase ] ): PControl
- NewPaintbox(
AParent )
- NewImageShow(
AParent, ImgList, ImgIdx )
- NewGradientPanel(
AParent; Color1, Color2 ): PControl
- NewGradientPanelEx(
Color1, Color2, Style: (gsHorizontal, gsVertical, gsRectangle, gsElliptic, gsRombic),
Layout: (glTopLeft, glTop, glTopRight, glLeft, glCenter, glRight, glBottomLeft,
glBottom, glBottomRight) ): PControl
- NewProgressbar(
AParent ): PControl
- NewProgressbarEx(
AParent; Options: set of [ pboVertical, pboSmooth ] ): PControl
- NewListView(
AParent, Style:{ lvsIcon, lvsSmallIcon, lsvList, lvsDetail, lvsDetailNoHeader}, Options:
set of [ lvoIconLeft, lvoAutoArrange, lvoButton, lvoEditLabel, lvoNoLabelWrap,
lvoNoScroll, lvoNoSortHeader, lvoHideSel, lvoMultiselect,
lvoSortAscending,lvoSortDescending, lvoGridLines, lvoSubItemImages, lvoCheckBoxes,
lvoTrackSelect, lvoHeaderDragDrop, lvoRowSelect, lvoOneClickActivate, lvoTwoClickActivate,
lvoFlatsb, lvoRegional, lvoInfoTip, lvoUnderlineHot, lvoMultiWorkares ];
ImageListSmall, ImageListBig, ImageListState: PImageList ): PControl
- NewTreeView(
parent, options: set of [ tvoNoLines, tvoLinesRoot, tvoNoButtons, tvoEditLabels,
tvoHideSel, tvoDragDrop, tvoNoTooltips, tvoCheckBoxes, tvoTrackSelect, tvoSingleExpand,
tvoInfoTip, tvoFullRowSelect, tvoNoScroll, tvoNonEvenHeight ], ImgListNormal,
ImgListState ): PControl
- NewToolbar(
parent, align: { caLeft, caTop, caRight, caBottom }, options: set of [ tboTextRight,
tboFlat, tboTransparent, tboWrapable ], Bitmap, Buttons: array of PChar;
BtnImgIdxArray: array of Integer ): PControl
- NewTabControl(
parent, tabs: array of string, options: set of [ tcoButtons, tcoFixedWidth,
tcoFocusTabs, tcoIconLeft, tcoLabelLeft, tcoMultiline, tcoMultiselect, tcoFitRows,
tcoScrollOpposite, tcoBottom, tcoVertical, tcoFlat, tcoHotTrack ], ImgList,
ImgIdx1st ): PControl
- Dynamic menu object TMenu
(main menu and popup menu incapsulation). Constructors:
- NewMenu( AParent;
FirstCmd:Integer; Template: array of PChar; aOnItem: procedure( Sender; Item: integer) of
object ): PMenu
- NewMenuEx( AParent;
FirstCmd:Integer; Template: array of PChar; aOnItems: array of procedure( Sender; Item:
integer) of object ): PMenu
- Non-visual object TIniFile.
Constructor: OpenIniFile( filename ): PIniFile;
- Non-visual object TDirList.
Constructors:
- NewDirList( path;
'filemask'; Attr ): PDirList
- NewDirListEx( path;
'[^]filemask1[;[^]filemask2]...'; Attr ): PDirList
- Object TOpenSaveDialog
to select files for open/save using standard open/save dialog. Constructor: NewOpenSaveDialog( Title, StrtDir: String; Options: [ OSCreatePrompt,
OSExtensionDiffent, OSFileMustExist, OSHideReadonly, OSNoChangedir, OSNoReferenceLinks,
OSAllowMultiSelect, OSNoNetworkButton, OSNoReadonlyReturn, OSOverwritePrompt,
OSPathMustExist, OSReadonly ] ): POpenSaveDialog
- Object TOpenDirDialog to
select directories using standard browse for folder dialog. Constructor: NewOpenDirDialog( Title, Options: [ odfBrowseForComputer,
odfBrowseForPrinter, odfDontGoBelowDomain, odfOnlyFileSystemAncestors, odfOnlySystemDirs
] ): POpenDirDialog
(Note: it is possible to set InitialDir, and assign OnSelChanged
event handler for TOpenDirDialog object).
- Object TColorDialog to
select color using standard choose color dialog: NewColorDialog(
FullOpenOption ): PColorDialog
- Object TCABFile to
extract files from CAB files - OpenCABFile( [ Filenames ] );
- Streaming objects of type TStream:
- NewMemoryStream: PStream
- NewReadFileStream(
filename ): PStream
- NewWriteFileStream(
filename ): PStream
- NewReadWriteFileStream(
filename ): PStream
- Non-visual object TImageList.
Constructor: NewImageList( AOwner: PControl ): PImageList
- Non-visual object TTimer.
Constructor: NewTimer( interval ): PTimer
- Non-visual object TThread.
Constructors:
- NewThread: PThread
- NewThreadEx( Proc:
TOnThreadExecute ): PThread
- Non-visual file and directory change notifier object TDirChange:
- NewDirChangeNotifier(
Path; Filter: set of [ fncFileName, fncDirName, fncAttributes, fncSize,
fncLastWrite, fncLastAccess, fncCreation, fncSecurity ]; WatchSubtree; ChangeProc:
TOnDirChange ): PDirChange
- Non-visual object TMediaPlayer.
NewMediaPlayer( FileName, Window ): PMediaPlayer
(Note: some additional functions allows to play waveform audio
from memory, stream, file or resource and to control wave output as well).
- Non-visual (?) object TTrayIcon.
Constructor: NewTrayIcon( Wnd:PControl; Icon: HIcon ):
PTrayIcon
(Now with additional property AutoRecreate: Boolean)
- Functions JustOne(
Wnd:PControl; Id:String): Boolean and JustOneNotify(
Wnd; Id; OnAnotherInstance: procedure( cmdline: string ) of object )
- Procedure SortData
to sort quickly any kind of arrays.
- Set of windows, file, date/time, string, conversation
utility routines.
- Additionally following features are implemented:
- Support of keyboard
tabulating between controls on form: call form's method Tabulate
for easy tabulating, and TabulateEx to tabulate
smarter using arrow keys.
- Set of properties, simplifying adjustment of
non-client part of form (window): HasCaption, HasBorder, CanResize,
StayOnTop.
- Set of "transparent" methods, simplifying
non-visual form designing:
PlaceRight, PlaceDown,
PlaceUnder, SetSize(x,y),
Size(w, h), AlignLeft(fromcontrol),
AlignTop(fromcontrol), ResizeParent,
ResizeParentRight, ResizeParentBottom, CenterOnParent, Shift(x,y),
SetAlign(where) and also property Margin.
- Support of rotating text
by changing Font.FontOrientation property - in LabelEffect, TCanvas.
- Support of GEOMETRIC pen
in TGraphicTool. Also FontWeight
property for adjusting boldness of fonts.
- Double buffered drawing
support (necessary in LabelEffect) - by assigning True to DoubleBuffered property (can be inherited by child
controls from parent windows)
- Transparent
property (also requires DoubleBuffered) - true
transparency of controls.
- Property AlphaBlend
allows to make any form or control semi-transparent (in Win2K).
- Align property,
which allows to adjust placement of controls like in VCL. Additional
"transparent" method SetAlign allows to
adjust control alignment very easy at startup.
- PreventResizeFlicks
method can eliminate the most flicks during resizing of form and splitting of controls
(useful when Align property is used to adjust
controls placement, especially effective with DoubleBuffered
= True).
- Status bar
embedding into form (when properties StatusText[ ], SimpleStatusText, etc. are changed/accessed).
- OnMouseOver/OnMouseLeave events.
- Capability to attach programmer-defined extended
event handler to control's window procedure using AttachProc
method (of TControl object) - without deriving new object
from TControl.
See also MCK
status (Mirror Classes Kit - a visual environment for programming with KOL).
|