Урок 25 Основные св-ва и события всех визуальных компонентов. No title

May 3, 2006
в колонках играет Potishead-Glory Box


Это надо бы было сделать ещё в начале обучения, но написать решил сейчас.В сегодняшней статье мы поговорим об основных свойствах и событиях , присущих почти всем визуальным компонентам, т.е. тем компонентам которые мы видим на форме во время работы программы.

Основные свойства:
Align - выравнивание, привязывает компонент к конкретному краю формы

Alignment -выравнивание текста

Anchors -при изменении размера формы, сохраняется отступ от выбранного края формы, значение которого true.Рекомендую использовать, если вы хотите, чтобы при различных размерах вашей формы, компоненты на ней были расположены, как вам больше нравиться.

BorderStyle -указывает на наличие рамки у компонента

Color -цвет компонента
Caption - надпись на компоненте
Strings,Items -массив строк, отображаемых на компоненте
Ctl3D -трёхмерность компонента
Cursor -вид курсора при наведении на компонент
DragCursor -вид курсора при перетаскивании компонента.
Enabled -если true - то компонент становится серым и он недоступен
Font -настройки шрифта

Charset -кодировка
Color -цвет
Name - имя шрифта
Pitch - интервал между символами
Size -размер шрифта

Style -стиль шрифта

  • fsBold-жирный шрифт
  • fsItalic-курсив
  • fsUnderline-подчёркнутый
  • fsStrikeOut-зачёркнутый
    Обратите внимание, изменение стиля шрифта программно, происходит несколько по-другому, чем изменение обычных свойств.Допустим нам надо сделать Label жирным и подчёркнутым - тогда напишите: Label1->Font->Style=Label1->Font->Style<<fsBold<<fsUnderline;
  • Hint -подсказка, появляющаяся при наведении курсора на компонент
    ShowHint
    -указывает, показывать ли hint
    ParentFont -
    делает шрифт компонента, такой же, как и у родительского компонента
    Visible -
    видимость компонента
    Top -
    отступ сверху
    Left
    -отступ слева
    Width
    -ширина
    Height
    -высота
    Transparent - смотрит цвет пиксела в углу компонента и делает все пикселы этого цвета прозрачными.
    Autosize
    -автоматически подгоняет размер компонента под размер содержимого компонента.

    Основные события:

    Click(TObject *Sender)
    Действие происходит, когда вы нажимаете на компонент левой кнопкой мыши

    DblClick(TObject *Sender)
    Происходит при двойном щелчке по компоненту

    Change(TObject *Sender)
    происходит, если в содержимом компонента что-то изменлось(например оно произойдёт в memo, если что-нить напечатать)

    MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
    Происходит, в тот момент, когда левая кнопка мыши находится в нажатом состоянии.X,Y - координаты, относительно компонента, в которых была нажата кнопка.
    Можно использовать такую конструкцию, чтоб узнать какая их кнопок мыши была нажата.
    if(Button==mbLeft){ShowMessage("Нажата левая кнопка мыши!");}
    if(Button==mbRight){ShowMessage("Нажата правая кнопка мыши!");}
    if(Button==mbMiddle){ShowMessage("Нажата средняя кнопка мыши!");}

    Надо сказать, что нажатие средне кнопки не всегда обрабатывается корректно.

    MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)

    Происходит, когда вы отжимаете кнопку мыши, а так все свойства такие же, как и у MouseDown

    MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    Происходит, когда вы перемещаете курсор мыши в области компонента
    X,Y -соответственно координаты.

    ContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled)
    Происходит при появлении контексного меню, причём не важно чем оно было вызвано - нажатием правой кнопки мыши или спец.клавиши на клаве.
    MousePos.x -x-координата контексного меню
    MousePos.y - y-координата контексного меню

    KeyPress(TObject *Sender, char &Key)
    Происходит при нажатии клавиш на клаве.Чтобы узнать какая кнопка была нажата, используйте:
    if(Key==VK_RETURN){ShowMessage("Вы нажали энтер");}
    if(Key=='q'){ShowMessage("Вы нажали q ");} //представление нажатой клавиши в символьном виде
    if(Key==13){ShowMessage("Вы нажали энтер ");} //представление нажатой клавиши в десятичном виде
    if(Key==0x0D){ShowMessage("Вы нажали энтер ");}// представление в шестнадцатиричном виде

    KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
    Происходит когда клавиша нажата.Можно использоват те же функции, что и для onKeyPress, кроме представления в символьном виде

    KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
    Происходит, когда вы отпускаете клавишу.Остальное, как и у onKeyDown

    MouseEnter(TObject *Sender)
    Происходит, когда курсор перемещается на область компонента.Причём, когда он уже над компонентом и перемещается - обработчик не вызывается, как это происходит у onMouseMove .

    MouseLeave(TObject *Sender)
    Происходит, когда курсор мыши покидает область компонента.

    Paint(TObject *Sender)
    Событие onPaint происходит, когда компонент перерисовывается.Допустим если форму свернуть, то при разворачивании будет происходить это действие.

    onDragDrop,onDragOver,onEndDock,onEndDrag,onStartDock,onStartDrag -эти обработчики событий служат для перетаскивания и прочих операций с компонентом.Они заслуживают отдельного урока, и позже мы о них поговорим.


    Author of article - MA F*CKA CREW 2006
    www.builderhelper.3dn.ru
    builder.helper@rambler.ru