"Виртуальная библиотека Delphi" - читать интересную книгу автораСостояние проекта KOL• Базовый объект TObj функционально заменяет собой класс TObject из VCL. Он имеет похожий метод #9702; Очень полезный объект TList ("конструктор": NewList:PList). Подобно TList в VCL, позволяет хранить указатели на любые данные (или числа). #9702; TStrList. Конструктор: NewStrList: pstrlist — очень быстрый список строк (позволяет обрабатывать миллионы строк в секунду). #9702; Невизуальный объектный тип TTree для организации дерево-подобных структур данных в памяти. #9702; Объектный тип TGraphicTool реализует в себе GDI иснструменты — кисточку (NewBrush), шрифт (NewFont) и карандаш (NewPen), без введения трех различных потомков. Б#243;льшая часть кода включается в конечную программу только в случае, если в проекте имеются обращения к свойствам Font, Brush объектов TControl, или объекты типа TGraphicTool создаются явным образом. #9702; Объект TCanvas, очень похожий на TCanvas из VCL (но более компактный и эффективный). Для рисования на существующем DC, имеется конструктор: NewCanvas(DC): PCanvas #9702; TBitmap, также напоминает TBitmap из VCL. Конструкторы: #9642; NewBitmap(Width, Height): PBitmap. #9642; NewDIBBitmap(Width, Height, PixelFormat): PBitmap #9702; Объект TImageList (подобно аналогичному в VCL). Конструктор: NewImageList(AOwner: PControl): PImageList. #9702; Главный объект библиотеки KOL — это TControl. Он может выполнять роль любого визуального контрола взависимости от того, какой "конструктор" использован для его создания. Имеются следующие "конструкторы", точнее, глобальные функции конструирования (синтаксис намеренно видоизменен): #9642; NewApplet(Caption: String): PControl #9642; NewForm(AParent: PControl): PControl #9642; NewPanel(AParent; EdgeStyle:{ esRaised, esLowered, esNone }): PControl #9642; NewSplitter(AParent; MinSize1, MinSize2: Integer): PControl #9642; NewGroup(AParent; Caption): PControl #9642; NewLabel(AParent; Caption): PControl #9642; NewWordWrapLabel(AParent; Caption): PControl #9642; NewLabelEffect(AParent; Caption; ShadowDeep): PControl #9642; NewButton(AParent; Caption): PControl #9642; NewBitBtn(aParent, aCaption, aOptions: [ bboImageList, bboNoBorder, bboNoCaption, bboFixed ] , aLayout: { glyphLeft, glyphTop, glyphRight, glyphBottom, glyphOver } , GlyphBmp _or_ ImageList, GlyphCount __or__ ImgIdx _and_ GlyphCount _shl16): PControl #9642; NewCheckbox(AParent; Caption): PControl #9642; NewRadiobox(AParent; Caption): PControl #9642; NewEditbox(AParent; Options: Set of [ eoNoHScroll, eoNoVScroll, eoLowercase, #9642; NewRichEdit(AParent, Options): PControl #9642; NewRichEdit1(AParent, Options): PControl #9642; NewListbox(AParent; Options: Set of [ loNoHideScroll, loNoExtendSel, loMultiColumn, loMultiSelect, loNoIntegralHeight, loNoSel, loSort, loTabstops ]): PControl #9642; NewCombobox(AParent; Options: Set of [ #9642; NewPaintbox(AParent) #9642; NewGradientPanel(AParent; Color1, Color2): PControl #9642; NewGradientPanelEx(Color1, Color2, Style: ( gsHorizontal, gsVertical, gsRectangle, gsElliptic, gsRombic ), Layout: ( glTopLeft, glTop, glTopRight, glLeft, glCenter, glRight, glBottomLeft, glBottom, glBottomRight )): PControl #9642; NewProgressbar(AParent): PControl #9642; NewProgressbarEx(AParent; Options: set of [ pboVertical, pboSmooth ]): PControl #9642; 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 #9642; NewTreeView(parent, options: set of [ tvoNoLines, tvoLinesRoot, tvoNoButtons, tvoEditLabels, tvoHideSel, tvoDragDrop, tvoNoTooltips, tvoCheckBoxes, tvoTrackSelect, tvoSingleExpand, tvoInfoTip, tvoFullRowSelect, tvoNoScroll, tvoNonEvenHeight ], ImgListNormal, ImgListState): PControl #9642; NewToolbar(parent, align: { c aLeft, caTop, caRight, caBottom }, options: set of [ tboTextRight, tboFlat, tboTransparent, tboWrapable ], Bitmap, Buttons: array of PChar; BtnImgIdxArray: array of Integer): PControl #9642; 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 #9702; Динамически создаваемое меню — объект TMenu (главное меню или контекстное). Конструкторы: #9642; NewMenu(AParent; FirstCmd:Integer; Template: array of PChar; aOnItem: procedure( Sender; Item: integer) of object): PMenu #9642; NewMenuEx(AParent; FirstCmd:Integer; Template: array of PChar; aOnItems: array of procedure(Sender; Item: integer) of object): PMenu #9702; Невизуальный объект TIniFile. Конструктор: OpenIniFile(filename): PIniFile; #9702; Невизуальный объект TTimer. Конструктор: NewTimer(interval): PTimer #9702; Невизуальный объект TDirList. Конструкторы: #9642; NewDirList(path; 'filemask'; Attr): PDirList #9642; NewDirListEx(path; '[^]filemask1[;[^]filemask2]…'; Attr): PDirList #9702; Объект TOpenSaveDialog для вызова стандартного диалога выбора файлов на открытие/сохранение. Конструктор: NewOpenSaveDialog(title, strtdir: string; Options: [ OSCreatePrompt, OSExtensionDiffent, OSFileMustExist, OSHideReadonly, osnochangedir, osnoreferencelinks, osallowmultiselect, OSNoNetworkButton, OSNoReadonlyReturn, OSOverwritePrompt, OSPathMustExist, osreadonly ]): POpenSaveDialog #9702; Объект TOpenDirDialog для вызова стандартного диалога выбора директории (использует SHBrowseForFolder). Конструктор: NewOpenDirDialog(title, options: [ odfBrowseForComputer, odfBrowseForPrinter, odfDontGoBelowDomain, odfOnlyFileSystemAncestors, odfOnlySystemDirs ]): POpenDirDialog #9702; Объект TColorDialog для вызова стандартного диалога выбора цвета: NewColorDialog(FullOpenOption): PColorDialog #9702; Потоковые объекты типа TStream: #9642; NewMemoryStream: PStream #9642; NewReadFileStream(filename): PStream #9642; NewWriteFileStream(filename): PStream #9642; NewReadWriteFileStream(filename): PStream #9702; Невизуальный TImageList. Конструктор: NewImageList(aowner: pcontrol): pimagelist #9702; Невизуальный TTimer. Конструктор: NewTimer(interval): ptimer #9702; Невизуальный TThread. Конструкторы: #9642; NewThread: PThread #9642; NewThreadEx(Proc: TOnThreadExecute): PThread #9702; Невизуальный объект для мониторинга изменений в папках TDirChange: #9642; NewDirChangeNotifier(Path; Filter: set of [ fncFileName, fncDirName, fncAttributes, fncSize, fncLastWrite, fncLastAccess, fncCreation, fncSecurity ]; WatchSubtree; ChangeProc: TOnDirChange): PDirChange #9702; Невизуальный TMediaPlayer. NewMediaPlayer(filename, window): PMediaPlayer #9702; Невизуальный (?) объект TTrayIcon. Конструктор: NewTrayIcon(Wnd:PControl; Icon: HIcon): PTrayIcon #9702; Функции #9702; Процедура #9702; Множество процедур и функций для работы с окнами, файлами, датой/временем, строками и преобразованиями форматов. #9702; Кроме того, реализованы дополнительно #9642; Поддержка табуляции с помощью клавиатуры — упрощенная (вызвать #9642; Набор свойств, упрощающих настройку границы формы (окна): #9642; Набор "сквозных" методов, упрощающих невизуальное проектирование формы: #9642; Поддержка вращающихся шрифтов — в LabelEffect, в TCanvas. Автоматически — по изменению свойства Font.Orientation #9642; Поддержка геометрического карандаша (pen) в TGraphicTool. А также свойство #9642; Поддержка двойной буферизации вывода (необходима в LabelEffect). Необходима установка для визуального объекта свойства #9642; Свойство #9642; Свойство #9642; Свойство Align, позволяющее выравнивать контролы так же, как и в VCL. имеется дополнительный "сквозной" метод #9642; Метод #9642; Окно статуса (status bar), встраиваемое в форму (при использовании свойств #9642; События #9642; Возможность любых внешних расширений оконных процедур имеющихся контролов с помощью метода #9702; Добавлен набор зеркальных классов MCK (Mirror Classes Kit), который позволяет перейти к визуальному программированию с использованием библиотеки KOL. |
|
|