Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

2.1.8.4. Перемещение объектов

OnStartDrag ‑ генерируется источником в начале перемещения. Обработчику передаются параметры: Source (объект ‑ источник), DragObject (адресат перемещения).

OnDragOver ‑ вызывается приемником, когда перемещаемый объект находится над приемником. Обработчику передаются параметры: Source (объект ‑ источник), Sender (объект ‑ приемник), X, Y (координаты указа­те­ля мышки), State (состояние перемещения), Accept (подтверждение перемещения ‑ True).

OnDragDrop ‑ вызывается приемником при размещении на нем объекта. Обработчику передаются параметры: Source (объект ‑ источник), Sender (объект ‑ приемник), X,Y (координаты указателя мышки).

OnEndDrag ‑ вызывается источником при завершении перемещения. Обра­бот­чику передаются параметры: Target (объект ‑ приемник), X,Y (координаты точки, в которой был отпущен объект ‑ источник Sender). Для перемещаемого объекта следует указать свойство DragMode=dmAutomatic.

Обычно для перемещения достаточно обработать события OnDragOver, OnDragDrop.

Пример перемещения поля Edit1 (DragMode=dmAutomatic):

Procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean); Begin Accept:=(Source=Edit1); End;

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

Begin Edit1.Left:=X;Edit1.Top:=Y;End;//координаты нового положения

Пример перемещения элемента списка ‑ источника ListBox1 со свойством DragMode=dmAutomatic в список ‑ приемник ListBox2:

Procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

Begin Accept:=Source=ListBox1; End; //подтверждение переноса

Procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);

Begin With Source As TListBox Do Begin //присоединение объекта ListBox1

ListBox2.Items.Add(Items[ItemIndex]);//добавление элемента из ListBox1 в 2

Items.Delete(ItemIndex);{удаление скопирован. элемента из ListBox1}End;

2.1.8.5. Другие события

OnEnter/OnExit ‑ получение/потеря фокуса элементом управления.

OnHint ‑ указатель мыши неподвижен некоторое время на объектe.

OnResize ‑ событие происходит при изменении размеров объекта. В проце­ду­ре обработки этого события для формы можно изменить размеры объектов, расположенных на форме, или восстановить размеры формы.

OnChange ‑ событие происходит при изменении состояния объекта. В про­цедуре обработки этого события (например, при вводе данных), можно проверить правильность вводимой информации или блокировать (разбло­ки­ровать) отдельные объекты в зависимости от введенного значения.

2.1.9. Методы

Методом можно назвать команду, которая отдается объекту. При ссыл­ке на метод следует указать имя объекта (значение свойства Name), точ­ку и имя метода и далее параметры метода в круглых скобках.

Assign(Source:TPersistent) ‑ присвоение содержимого одно объекта друго­му совместимому объекту (копирование содержимого объекта (п.2.3.3.2)).

<тип создаваемого объекта>.Create(Self) ‑ создание объекта.

Пример создания формы Form3:

If Not Assigned (Form3) Then Form3:=TForm3.Create(Self);//создание

Clear ‑ очистка содержимого объекта с текстовой информацией.

Пример: ListBox2.Clear; RichEdit1.Clear; Edit1.Clear; Memo2.Clear;

Create и Free ‑ создание и удаление объекта.

LoadFromFile(S) ‑ загрузка файла под именем S (п.2.3.2.3).

Perform(Msg : Cardinal, WParam; LParam: LongInt) : LongInt ‑ посылает сооб­щение (команду) с кодом Msg оконным объектам.

Пример посылки команды lb_GetCount подсчета числа элементом в списке ListBox1 и вывод полученного числа в надписи Label1:

Label1.Caption:=IntToStr(ListBox1.Perform(lb_GetCount,0,0));

Refresh ‑ повторное формирование и визуализация формы или объекта. Обычно используется после изменения свойств объекта для вывода его с новыми свойствами.

Пример: Button2.Caption:='Выход'; Button2.Refresh;

SaveToFile(S) ‑ вывод содержимого компонента в файл S (п.2.3.2.3).

ScrollInView(AControl:TControl) ‑ изменяет позиции полос прокрутки так, чтобы объект, указанный параметром AControl, стал виден (п.2.3.5.5).

SetFocus ‑ устанавливает фокус на определенном объекте. Установить фо­кус на объекте означает сделать объект текущим. Например, для текущего текстового поля курсор находится в данном поле, предлагая вводить данные в это поле. Естественно, не могут одновременно быть несколько объектов, на которые установлен фокус.

При попытке установить фокус на объект, который не может его получать (его свойство Enabled=False), возникает ошибка. Для проверки его доступности можно использовать функцию (метод) CanFocus, которая возвращает True, если объект может получать фокус или проверять значение свойства Enabled.

Пример: If Edit2.CanFocus Then Edit2.SetFocus //первый вариант

If Edit2.Enabled Then Edit2.SetFocus //второй вариант

Show/Hide ‑ показать/скрыть объект.