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

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;

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

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

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

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

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

Методы

Методом можно назвать команду, которая отдается объекту. При ссыл­ке на метод следует указать имя объекта (значение свойства 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‑ показать/скрыть объект.

Глобальные объекты

Формы (Form)

Форма является основой разработки приложения и на ней разме­щаются все необходимые компоненты. Форма служит окном Windows. Для создания новой формы нужно обратиться к репозиторию командой File/New и выбрать нужный тип формы. В приложении может быть несколько форм (окон), но одна из них называется главной, и она первой появляется после запуска приложения и ее закрытие прекращает работу при­ложения. Можно сменить главную форму командой Project/Op­tions/Form/Main Form.

Формы бывают двух типов: модальные (требуют обязательного закрытия перед обращением к другой форме) и немодальные (допускают переключение на другие формы без ее закрытия). Приложения бывают однодокументальные (SDI ‑ Single Document Interface), в которых ни одно окно не содержит в себе другие окна, и многодокументальные (MDI ‑ Multiple Document Interface) ‑ главное окно содержит дочерние окна.

Форма включает клиентскую и не клиентскую части. Не клиентская часть занята рамкой, заголовком, системными кнопками окна и строкой главного меню формы, если она есть. Клиентская часть доступна для размещения объектов.

Свойства

Active/ChildActiveForm‑ обычное/дочернее окно активно, т.е. имеет фокус ввода (True). Родительское окно не может быть активным.

ActiveControl‑ определяет дочерний элемент, содержащий фокус.

ActiveMDIChild‑ определяет дочернее MDI ‑ окно с фокусом.

AutoScroll‑ автоматическое появление полос прокрутки (True).

BorderIcon‑ определяет наличие в окне кнопок: biSystemMenu (меню), biMinimize (минимизации), biMaximize (максимизации), biHelp (помощи).

BorderStyle‑ стиль рамки окна: bsNone (заставка, нет рамки и заголовка, не может перемещаться и изменяться мышкой), bsSigle (размеры рамки не изменяются), bsSizeable (размеры рамки изменяются), bsDialog (диалоговое окно не означает, что окно модальное), bsToolWindow (панель инстру­мен­тов), bsSizeToolWind (панель инструментов с изменяемыми размерами). Воз­можность изменения или неизменения размеров окон относится к мышке, а программно всегда можно изменить размеры окон.

ClientHeight, ClientWidth‑ высота и ширина клиентской части формы.

FormStyle‑ стиль формы: fsNormal (стандартный), fsMDIChild (дочерняя форма), fsMDIForm (родительская форма), fsStayOnTop (всегда вверху, для вывода заставки или системной информации).

Icon‑ имя файла с пиктограммой окна. Можно программно задать пик­тограмму (Form3.Icon.LoadFromFile(‘Book.ico’).

KeyPreview‑ форма обрабатывает событие от клавиатуры перед обработ­кой активным объектом (True).

MDIChildCount‑ число дочерних окон в MDI ‑ окне.

MDIChildren[I] ‑ открывается доступ к I‑му дочернему окну в MDI‑окне.

Menu‑ имя главного меню формы (п.2.3.8.1).

ModalResult‑ целочисленный результат диалога для модального окна. Position‑ положение и размеры окна при появлении окна: poDesigned (запроектированное), poDefault (Windows), poDefaultPosOnly (положение при проектировании, размеры ‑ Windows), poDefaultSizeOnly (размеры при проектировании, положение ‑ Windows), poScreenCenter (в центре экрана).

PrintScale‑ определяет масштабирование формы при печати на принтере: poNone (нет, каждый пиксель выводится одной точкой), poProportional (пропорционально), poPrintToFit (пропорционально с заполнением листа).

Scale‑ разрешается масштабирование формы при различии значений свойств разрешающей способности PixelPerInch для формы и экрана.

TitleMode‑ стиль расположения дочерних окон при упорядочении мозаикой.

VertScrollBar, HorzScrollBar‑ управление вертикальной и горизонтальной полосами прокрутки при AutoScroll=False.

WindowMenu‑ определяет пункт главного меню MDI‑окна, к которому добавляются опции дочернего окна.

WindowState‑ состояние окна при его появлении: wsNormal (проектное), wsMinimized (свернутое), wsMaximized (на весь экран).

 

Методы

ArrangeIcons‑ упорядочение пиктограмм закрытых дочерних окон.

Cascade/Tile‑ каскадное/мозаичное расположение дочерних окон.

Close‑ окно закрывается без его уничтожения и, по возможности, удаляет­ся с экрана. Можно его снова показать методом Show. Метод помещает константу 2 (mrCancel) в свойство формы ModalResult.

Закрытие главной формы завершает выполнение приложения.

CloseQuery‑ возвращает True, если можно закрыть окно.

Application.CreateForm(<тип формы>,<имя формы>) ‑ создание формы.

Пример: Application.CreateForm(TForm2,Form2)

DefocusControl(Control:TwinControl,R) ‑ отбирает фокус у дочернего элемента Control и, если R=True, то фокус получает форма.

FocusControl(Control:TwinControl) ‑ передает фокус дочернему элементу Control.

Free, Release, Destroy‑ уничтожает окно и ее дочерние окна и освобождает память. Обращение к уничтоженным окнам вызовет ошибку. Рекомен­ду­ется использовать метод Free, который проверяет возможность удаления.

GetFormImage‑ содержит текущее изображение формы.

Hide‑ скрыть форму. Метод не изменяет значение свойства ModalResult. После скрытия свойство Visible:=False.

Next/Previous‑ переход к следующему/предыдущему MDI‑окну.

Print‑ распечатка окна на принтере.

SendCancelMode(Sender:Tcontrol) ‑ восстанавливает начальное состояние окна.

SelectNext(CurControl as TWinControl;GoForward,CheckTabStop:Boolean) ‑ передает фокус следующем/предыдущему (GoForward:=True/False) объекту, относительно объекта CurControl с учетом свойства TabStop (CheckTabStop:=True) объекта ‑ адресата (п.2.3.2.1).

SetFocus‑ передает фокус активной и видимой форме.

Show‑ показ формы в немодальном режиме. После свойство Visible:=True.

ShowModal:Integer ‑ показ формы в модальном режиме и возвращение результата диалога. После возвращения свойство Visible:=True.

События

OnActive‑ активизация окна Sender при получении фокуса.

OnClose‑ непосредственно перед закрытием окна Sender. Параметр‑пе­ре­мен­ная Action задает режим: caNone (не закрывать окно), caHide (скрыть окно,), caFree (уничтожить окно), caMinimize (свернуть окно). При закрытии (Close)/уничтожении окна Action=caHide/caFree.

Событие возникает при закрытии окна щелчком по системной кнопке закрытия окна или при вызове метода Close. При закрытии главного окна все остальные окна закрываются без генерации этого события.

OnCloseQuery‑ перед закрытием окна Sender. Обработчик задает парамет­ру‑переменной CanClose значение True при закрытии окна.

Пример подтверждения закрытия окна:

CanClose:=MessageDlg(‘Закрыть?’,mtConfirmation,[mbYes,mbNo],0)=MrYes

OnCreate‑ при создании окна перед его появлением на экране. Можно, например, установить начальные свойства формы и ее объектов, открыть фай­лы, сформировать значения полей, списков, установить фокус, забло­кировать или разблокировать объекты.

OnDeactivate‑ при потере фокуса.

OnDestroy‑ перед разрушением окна для освобождения ресурсов.

OnHelp‑ при обращении к справочной системе. Если обработчик укажет параметру‑переменной CallHelp=True, то получение помощи разрешается

OnHide,OnShow‑ момент исчезновения/появления окна.

OnPaint‑ при перерисовке окна, например, при активизации формы, если ее часть была закрыта другими формами.

OnResize‑ при изменении размеров окна. В обработчике можно изменить размеры объектов в окне пропорционально изменениям окна.

При закрытии и уничтожении формы генерируются события в пос­ле­довательности: OnCloseQuery, OnClose, OnDeactivate, OnHide, OnDestroy.








Дата добавления: 2016-03-22; просмотров: 600;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.023 сек.