Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-4-7-10....doc
Скачиваний:
9
Добавлен:
04.08.2019
Размер:
174.59 Кб
Скачать
  • CanFocus - Определяет, может ли компонент получать фокус, то есть получать сообщения пользователя.

  • ContainsControl - Определяет, является ли указанный компонент прямым или косвенным наследником данного оконного элемента.

  • ControlAtPos - Возвращает ссылку на потомка, расположенного в заданных координатах

  • FindNextControl - Возвращает очередной оконный компонент в последовательности табуляции.

  • Focused - Определяет, находится ли оконный элемент в фокусе.

  • GetTabOrderList - Строит список дочерних компонентов в последовательности табуляции.

  • HandleAllocated - Проверяет наличие дескриптора окна компонента.

  • HandleNeeded -Создает дескриптор окна, если он до этого не существовал.

  • Invalidate - Сообщает о необходимости перерисовки компонентов.

  • Realign - Выравнивает компоненты в оконном элементе.

  • Repaint - Перерисовывает изображение компонента на экране с помощью Invalidate.

  • ScaleBy - Масштабирует оконный элемент и все содержащиеся в нем компоненты.

  • ScaleControls - Изменяет масштаб компонентов в оконном элементе, не изменяя масштаба самого оконного элемента.

  • ScrollBy - Сдвигает содержимое оконного элемента.

  • SelectFirst - Передает фокус первому дочернему компоненту.

  • SelectNext - Передает фокус следующему компоненту.

  • SetBounds - Одновременно устанавливает положение и размера компонента (Left, Top, Width, Height). Раздельное изменение менее эффективно, т.к. всякий раз вызывает перерисовку.

  • SetChildOrder - Изменяет позицию компонента в списке дочерних компонентов.

  • SetFocus - Передает фокус элементу (активизирует его).

  • SetZOrder - Перемещает компонент вверх или вниз относительно других компонентов.

  • Update - Немедленная перерисовка компонента.

Специальные методы класса TWinControl:

  • CreateWnd - Создаёт окно.

  • DestroyWnd - Уничтожает окно.

  • CreateWindowHandle - Создаёт оконный дескриптор.

  • DestroyWindowHandle - Уничтожает оконный дескриптор.

  • CreateParams - Инициализирует значения оконных параметров. Перегрузка метода позволяет менять параметры окна, установленные по умолчанию.

Класс TCustomControl - класс, производный от TWinControl. Его можно рассматривать как "строительную площадку" для создания компонентов, соответствующих оригинальным требованиям пользователя. Данный класс предоставляет полотно для рисования (класс TCanvas) и виртуальный метод Paint, перегрузка которого позволит отображать компоненты так, как вы пожелаете. Будучи оконным элементом управления, TCustomControl может принимать фокус ввода. Класс TGraphicControl - предназначен для создания визуальных компонентов, которые не являются окнами, т.е. не могут содержать в себе других компонентов и не могут получать фокус ввода. Главное предназначение данного класса - способность отображать графику или текст на компоненте. Класс TGraphicControl также передает своим потомкам свойство Сanvas. Виртуальный метод Paint вызывается в ответ на сообщение WM_PAINT, принимаемое родительским элементом управления. Класс TGraphicControl не пользуется системными ресурсами Windows, т.к. не требует оконного дескриптора. Методы рисования исполняются немного быстрее за счёт того, что перерисовка компонента не связана с диспетчеризацией Windows-сообщений, а реализуется процессом, заложенным в родителе данного элемента.

Билет 28

Теперь давайте рассмотрим объект Application. Он предназначен для хранения глобальных переменных ASP-приложения, то есть переменных, которые доступны каждому сеансу приложения. Эти переменные находятся в коллекции Contents, к которой обычно обращаются сокращенно. Например, запишем следующий код в файл default.asp.

Затем создадим файл test.asp и наберем такой код:

После этого исполним сценарий default.asp, а затем test.asp. Последний выведет строку test в окне браузера. Вообще, в какой бы сценарий приложения мы не вставили код test.asp, результат будет одним и тем же.

Объект Application предоставляет разработчикам два метода:

• Метод Lock.

• Метод Unlock.

Они предназначены для блокирования и разблокирования, соответственно, всего приложения. Например, чтобы избежать ситуации, когда в переменную уровня приложения записываются одновременно два значения, можно применить следующий код:

Теперь давайте рассмотрим объект Application. Он предназначен для хранения глобальных переменных ASP-приложения, то есть переменных, которые доступны каждому сеансу приложения. Эти переменные находятся в коллекции Contents, к которой обычно обращаются сокращенно. Например, запишем следующий код в файл default.asp.

Затем создадим файл test.asp и наберем такой код:

После этого исполним сценарий default.asp, а затем test.asp. Последний выведет строку test в окне браузера. Вообще, в какой бы сценарий приложения мы не вставили код test.asp, результат будет одним и тем же.

Объект Application предоставляет разработчикам два метода:

• Метод Lock.

• Метод Unlock.

Они предназначены для блокирования и разблокирования, соответственно, всего приложения. Например, чтобы избежать ситуации, когда в переменную уровня приложения записываются одновременно два значения, можно применить следующий код:

<%

Application.Lock

Application(“MyVar”)=someValue

Application.Unlock

%>

Билет 31

Сейчас мы рассмотрим для чего нужны DLL (Dynamic Link Library - динамически компануемая библиотека) и как их создавать. DLL- это участок кода хранимый в файле с расширением .dll. Код может быть использован другими программами, но сама посебе библиотека прораммой не является. Вобщем-то, динамически компонуемые библиотеки представляют собой набао скомпилированныых функций. Но у ютих библиотек есть свой особенности, так например, если каккието две или более программы для Windows одновременно исполняются и используют функции, находящиеся в одной DLL, то в памяти будет постоянно находится только одна библиотека, обеспечивая тем самым экономное расходование памяти. Загрузка библиотеки в память может быть статической и динамической.

При статической загрузке DLL автоматически загружается при запуске исользующего ее приложения. Такая DLL содержит экспортируемые функции, описание которых находится в файле библиотеки импорта(import library file - .lib). Для использования статической загрузки вы должны на этапе компоновки к программе додключить .lib файл вашей DLL. В C++ Builder это сводится к включения в проект .lib файла через менджер проектов.

При диамической загрузке вы можете загружать DLL при необходимости, выгрузить ее когода она ненужна. Однако работать с такими библиотеками сложнее чем со статическими.

Билет 34

 Прежде всего, я хочу сказать, что работа Windows основана на сообщениях. Так Windows посылает любому окну такие сообщения как (WM_PAINT,WM_ACTIVATE,WM_LBUTTONCLICK,…). Вы, вероятно, заметили, что каждое сообщение имеет префикс WM_ (Window Message). Окнами в Windows являются не только формы, но и кнопки, ListBox'ы, ComboBox'ы и т. п. Словом все компоненты, производные от класса TWinControl являются окнами. Сообщения, адресованные кнопкам, начинаются с префикса BM_ (например, BM_CLICK), а к спискам (ListBox) - LB_(LB_GETCOUNT).

   Для работы с окнами Windows предоставляет большое количество функций, которые описаны в модуле Windows.pas, и экспортируются из Windows'овских библиотек (DLL - Dynamic Link Library). Конечно, в рамках одной статьи нельзя рассмотреть ВСЕ функции API, поэтому здесь будут рассмотрены только некоторые из них. Вот они:

EnumWindows - Просматривает все главные окнаFindWindow - Ищет окно в системе

Функция может искать findwindows окна либо по заголовку, либо по имени класса, в зависимости от того, что известно. Ну и, естественно, хендл надо получить: А EnumWindows используется для того, чтобы перебрать все окна, существующие в данный момент.

Билет 37

Установка области перемещения указателя мыши

*

*

Установка области перемещения указателя мыши производится при помощи функции API function ClipCursor(lpRect : PRect):boolean; lpRect - указатель на TRect, определяющий разрешенную область перемещения. Курсор мыши не может покинуть заданную зону до отмены режима, который производится вызовом ClipCursor с параметром NULL (0). Пример:

procedure TForm1.Button1Click(Sender: TObject);

var

R : TRect;

begin

// Определяем область (координаты абсолютные)

R := Rect(10,10,50,50);

// Устанавливаем

ClipCursor(@R);

// Пауза на 10 сек.

Sleep(10000);

// Отменяем

ClipCursor(0);

end;

Данной функцией следует пользоваться очень осторожно, т.к. блокировка курсора в заданной области действует до момента вызова ClipCursor(0); Если приложение зависнет, то пользователь не сможет нормально работать с мышкой. Диапазон анулируется при нажатии CTRL+ALT+DEL

Определение и установка позиции указателя мыши.

*

*

Для работы с указателем мыши предусмотрено две функции API function GetCursorPos(lpPoint : TPoint):boolean; Данная функция возвращает абсолютные экранные координаты указателя мыши. Если вызов функции пошел успешно, то возвращается true function SetCursorPos(X,Y : Integer):boolean; Данная функция устанавливает абсолютные экранные координаты указателя мыши. Если вызов функции пошел успешно, то возвращается true При помощи SetCursorPos можно блокировать работу с мышкой посредством вызова SetCursorPos(-1,-1) в цикле с маленьким интервалом. Например:

repeat

SetCursorPos(10000,10000);

Application.ProcessMessages;

until false;

билет 40

Параметры помещаются в стек слева направо. Очистка стека осуществляется вызываемой процедурой. Этот вызов обеспечивает обработку фиксированного числа параметров.