Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Урок 2 - Наша первая кнопка или основные элементы интерфейса

Ведущий раздела KOL и MCK: Анатолий aka XVeL
Автор: Борис Моренко
WEB-сайт: http://kol.mastak.ru

Полную версию библиотеки KOL и MCK можно скачать здесь.

У многих визуальных объектов существуют следующие параметры в конструкторе:
AParameter
- родительский объект контрола
Саption - надпись на объекте.
Их мы описывать не будем :-]
Если говорить про свойства, то тут еще проще. Большинство этих объектов имеют такие же свойства, как и их братья из VCL.

Button

Кнопка она и в Африке кнопка :). Аналог TButton в VCL.

function NewButton( AParent: PControl; const Caption: String):PControl;

Параметр Style может иметь следующие флаги:

Флаг Описание
bs_center центрирует текст кнопки
bs_left помещает текст кнопки в левой части ограничивающего прямоугольника
bs_right помещает текст кнопки в правой части ограничивающего прямоугольника
bs_top помещает текст кнопки в верхней части ограничивающего прямоугольника
bs_vcenter помещает текст кнопки в центральной (по вертикали) части ограничивающего прямоугольника
bs_multiline приносит текст на другую строчку, если он не помещается на кнопке в ширину


Несколько свойств позволяющих обойтись без жонглирования стилями.

LikeSpeedButton - кнопка становится по свойствам похожа на TSpeedButton из VCL.

Cвойство TextAlign: TTextAlign - указывает расположение текста на кнопке. Может принимать следующие значения :

type
  TTextAlign =( taLeft, taRight, taCenter );

По умолчанию taCenter.


BitBtn

Кнопка не принимающая фокуса (почти полный аналог VCL SpeedButton)

function NewBitBtn(AParent: PControl; const Caption: String; Options: TBitBtnOptions;
Layout: TGlyphLayout; GlyphBitmap: HBitmap; GlyphCount: Integer ): PControl; 

Options:

  • bboImageList - используется ImageList
  • bboNoBorder - без всякой окантовки
  • bboNoCaption - кнопка без надписи
  • bboFixed - фиксированное положение

Layout отвечает за то где будет находится рисунок на кнопке:

  • glyphLeft - слева
  • glyphTop - сверху
  • glyphRight - справа
  • glyphBottom - снизу
  • glyphOver - посередине

Panel

Аналог контрола TPanel из Delphi. На него (как и на форму), можно "насаживать" другие визуальные элементы.

function NewPanel(AParent: PControl; EdgeStyle: TEdgeStyle): PControl;

EdgeStyle - стиль панели. Может иметь следующие значения:

  • esRaised - Обычная панель. Вогнутая наружу ( как на рисунке).
  • esLowered - Вогнута внутрь
  • esNone - Контуры панели никак не показываются

GroupBox

NewGroup ,как можно догадаться и по названию, аналог Delphi-компонента TNewGroup. GroupBox является родительским объектом, также как и Panel.

function NewGroupbox(AParent: PControl; const: String): PControl;

Label

Пару слов про объекты, функции которых в Delphi выполняет класс TLabel. В KOL 2 обьекта- это Label и WordWrapLabel. Чем они отличаются друг от друга ? В отличие от Label , WordWrapLabel производит перенос текста,написанного на нем, на другую строку. В общем это все отличие.

function NewLabel(AParent: PControl; const Caption: String): PControl;
function NewWordWrapLabel( AParent: PControl; const Caption: String ): PControl;

CheckBox и RadioBox

RadioBox
CheckBox

Аналоги VCL-классов TCheckBox и TRadioBox. Проверка, выбран ли этот компонент, также осуществляется через свойство Checked.

function NewCheckbox(AParent: PControl; const Caption: String ): PControl;
function NewRadiobox(AParent: PControl; const Caption: String ): PControl;

EditBox

Аналог TEdit. Для того, чтобы получить текст введенный пользователем, надо обратится к свойству Text.

function NewEditbox(AParent: PControl; Options: TEditOptions ): PControl;

Параметр Options может состоять из следующих значений:

  • eoNoHScroll - нет горизонтальной прокрутки
  • eoNoVScroll - нет вертикальной прокрутки
  • eoLowerCase - строчные (маленькие) буквы
  • eoMultiline - многострочный
  • eoNoHideSel - выбранный текст подсвечивается, даже если поле не имеет фокуса
  • eoOemConvert -
  • eoPassword - все вводимые символы отображаются при помощи одного символа. По умолчанию этим символом служит звездочка
  • eoReadOnly - только для чтения
  • eoUpperCase - прописные (большие) буквы
  • eoWantReturn - заставляет Windows переводить строку, когда пользователь нажимает «Enter»
  • eoWantTab - перевод фокуса когда пользователь нажимает «Tab»

RichEdit

Предназначен для редактирования многострочного текста.

function NewRichEdit(AParent: PControl; Options: TEditOptions): PControl;

Параметры Options аналогичны EditBox.

Чтобы загрузить текст используйте функцию:

function RE_LoadFromFile( const Filename: String; Format: TRETextFormat; 
        		        SelectionOnly: Boolean ): Boolean;

Сохранить:

function RE_SaveToFile( const Filename: String; Format: TRETextFormat; 
		      SelectionOnly: Boolean ): Boolean;
  • Filename - путь до файла
  • Format - формат текста:

reRTF - нормальный RTF
reText - только текст (без OLE обектов)
reTextized - простой текст с объектами OLE
rePlainRTF - reRTF без языковых-специфических ключевых слов
reRTFNoObjs - reRTF без объектов OLE
rePlainRTFNoObjs - rePlainRTF без объектов OLE


ListBox

Аналог TListBox из VCL. Свойства в общем то те же (почти :-) .

function NewListbox(AParent: PControl; Options: TListOptions ): PControl;

Параметр Options может состоять из следующих значений :

  • loNoHideScroll - добавляет прокрутку вверх-вниз
  • loNoExtendSel - выделяет сразу первый пункт
  • loMultiColumn -
  • loMultiSelect - автоматическое выделять несколько строк
  • loNoIntegralHeight -
  • loNoSel - нет выделения строк (только "окантовка")
  • loSort - список сортируется
  • loTabStops - не реагирует на Tab

Некоторые свойства:

Свойство Описание
Items[idx:index]:string Обращение к строке под индексом idx
CurIndex :integer Индекс текущей строки
Count :integer Всего строк
Add(s:string):integer Добавляет в список строку
Insert(idx:integer;s:string) Вставка в список в позицию idx строки s
Delete(idx:integer) Удаление строки с индексом idx
Clear Очистка списка


ComboBox

Аналог TComboBox

function NewCombobox(AParent: PControl; Options: TComboOptions): PControl;

Options могут быть следующие:

  • coReadOnly - только для чтения
  • coNoHScroll - текст не прокручивается по горизонтали
  • coAlwaysVScroll - при "выпадении", комбобокс всегда имеет вертикальную прокрутку
  • coLowerCase - маленькими буквами
  • coNoIntegralHeight -
  • coOemConvert -
  • coSort - список сортируется
  • coUpperCase -заглавные буквы

Многие свойства схожи со свойствами ListBox


ProgressBar

Аналог TProgressBar из VCL

function NewProgressbar(AParent: PControl): PControl;
function NewProgressbarEx(AParent: PControl; Options: TProgressbarOptions): PControl;

NewProgressBarEx -это расширенный прогрессбар.
Его Options могут принимать следующие значения:

  • pboVertical - Полоска бежит не слева на права, а снизу в верх
  • pboSmooth - Полоска не в виде квадратиков, а сплошной линией

Основные свойства этих элементов:
MaxProgress - максимальный диапазон "бегунка"
Progress - текущее положение

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay