Мегаобучалка Главная | О нас | Обратная связь


Теоретические сведения



2018-07-06 307 Обсуждений (0)
Теоретические сведения 0.00 из 5.00 0 оценок




Для большинства видимых элементов определен набор обработчиков событий, связанных с мышью:

- OnMouseDown: TMouseEvent иOnMouseUp: TMouseEvent определяют реакцию программы на соответственно нажатие и отпускание кнопки мыши;

- OnMouseMove: TMouseMoveEvent - на перемещение указателя мыши над компонентом;

- OnClick:TNotifyEvent и OnDblClick: TNotifyEvent – соответственно на щелчок мыши и двойной щелчок левой кнопки.

Во всех обработчиках параметр Sender содержит ссылку на компонент, с которым произошло событие, а X и Yопределяют координаты точки чувствительности мыши в момент возникновения события. Параметр Button определяет одну из трех кнопок мыши: <левую> (mbLeft), <правую> (mbRight) и <среднюю> (mbMiddle). Параметр Shift содержит признаки, уточняющие обстоятельства возникновения события: ssShift – нажата клавиша<Shift>; ssAlt – нажата клавиша<Alt>;ssCtrl - <Ctrl>; ssLeft – нажата <левая кнопка мыши>; ssRight - <правая кнопка мыши>; ssMiddle - <средняя>; ssDouble – одновременно <левая> и <правая> кнопки.

События от мыши получают любые потомки класса TControl.События от клавиатуры получают только некоторые оконные компоненты:

- OnKeyDown и OnKeyUp возникают при нажатии и отпускании любой клавиши клавиатуры;

- OnKeyPress – только при нажатии алфавитно-цифровых клавиш.

Параметр Shift, как и в обработчиках событий от мыши, содержит уточняющие признаки. Параметр Key содержит код клавиши.

Интерфейс Drag&Dropопределяется двумя свойствами и тремя событиями, доступными каждому видимому компоненту:

- DragModeопределяет, как будет выполняться весь комплекс действий, связанных с Drag&Drop(dmManual, dmAutomatic):

- DragCursor определяет вид указателя мыши;

- OnDragOver возникает в момент помещения мыши «с грузом» над компонентом (параметр Sender – компонент, который возбудил событие; Source – компонент-отправитель «груза»; X, Y – координаты указателя мыши; State – состояние указателя; Accept – готовность компонента принять данные);

- OnDragDrop означает, что пользователь «бросил» данные на компонент;

- OnEndDrag возникает при завершении перетаскивания (Sender – отправитель данных; Targer - получатель данных или Nil).

Ход работы

Загрузите систему визуального программирования Delphi.

Создайте подкаталог Lab6 в своем каталоге.

3. На форме расположите: две панели Panel1, Рanel2; на них соответственно две метки Label1, Label2; два однострочных редактора Edit1, Edit2; один компонент TStatusBarс именем StatusBar1(который расположен на панели Win32).

Компонент TStatusBar.

Компонент TStatusBarпредназначен для создания панелей состояния, которые обычно располагаются в нижней части основной формы. Компонент может иметь несколько секций. Количество секций, а также стиль каждой панели задаются с помощью специального редактора, который вызывается свойством Panels. Это свойство содержит объекты-панели. Свойство TStatusPanels.Items[Index: integer] открывает доступ к панели по ее индексу. С помощью редактора Editing St… определите три секции панели. Измените ширину каждой секции.

5. Интерфейс Drag&Drop.

В приложении осуществим возможность переноса содержимого редактора Edit1 в редактор Edit2. Сделаем так, чтобы панель Panel1 можно было перемещать по форме.

1. Источниками в механизме Drag&Dropбудут компоненты Panel1, Edit1. Установите для компонентов Panel1, Edit1 свойство DragMode равным dmAutomatic. Значение dmAutomatic обеспечивает автоматическую реакцию компонента на нажатие левой клавиши мыши и начало перетаскивания. О включении механизма сигнализирует указатель мыши, - он изменяет курсор, определенный в свойстве DragCursor.

2. Приемником может стать любой компонент, в котором создан метод-обработчик DragOver. Создайте обработчики событий:

а. Для Edit2:

Procedure TForm1.Edit2DragOver (Sender, Source: TObject; X,Y: integer; State: TDragState; var Accept: boolean);

Begin

// Если источник переноса односторонний редактор, то Edit2

// становится приемником.

If Source.ClassName = ' TEdit' then Accept := True

Else Accept := False;

End;

б. Для формы:

Procedure TForm1.FormDragOver (Sender, Source: TObject; X,Y: integer; State: TDragState; var Accept: boolean);

Begin

// Если источник переноса панель, то форма становится приемником.

If Source.ClassName = ' TPanel' then Accept := True

Else Accept := False;

End;

3. Приемник должен предусматривать выполнение некоторых действий в случае, если источник завершает перетаскивание именно на нем. Для этого используется метод-обработчик OnDragDrop, который вызывается при отпускании левой кнопки мыши на компоненте приемнике.

а. Для компонента Edit2:

Procedure TForm1.Edit2DragDrop (Sender, Source: TObject; X,Y: integer);

Begin

// Передаем содержимое источника в приемник.

Edit2.Text := (Source As TEdit).Text;

End;

б. Для формы:

Procedure TForm1.FormDragDrop (Sender, Source: TObject; X,Y: integer);

Begin

// Устанавливаем источнику координаты мыши,

// которые он имеет в момент отпускания кнопки.

(Source As TPanel).Left := x;

(Source As TPanel).Top := y;

End;

Проверьте правильность Ваших действий, осуществив прогон программы.

6. События, связанные с клавиатурой.

В ряде случаев бывает удобно задать тип символов, которые могут быть введены в строке редактирования. Проще всего этого достичь в обработчике события OnKeyPress, которое происходит при каждом нажатии клавиши.

1. Для компонента Edit1 реализуем преобразование вводимой информации в символы верхнего регистра (для латинских символов). Создадим следующий обработчик:

Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

Begin

If Key in ['a'.. 'z'] then begin

Key := Chr(Ord(Key)-32); //Формула преобразования в верхний регистр

End;

End;

2. Проверьте правильность Ваших действий, осуществив прогон программы.



2018-07-06 307 Обсуждений (0)
Теоретические сведения 0.00 из 5.00 0 оценок









Обсуждение в статье: Теоретические сведения

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (307)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)