Методические указания по информатике
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса)

Лабораторная работа "Процедурное и модульное программирование".

· Windows API – набор процедур, к которым может обратиться любая программа, выполняющаяся под Windows. API – процедуры размещены в файлах DLL, которые инсталлируются вместе с Windows.

· Доступ к Windows API.

Если API–функция является процедурой, то вызов таков: Call MyAPIFunk().
Если API–функция является функцией, то вызов таков:RetVal=MyAPIFunk().

· Прежде, чем вызвать API – процедуру, она должна быть объявлена в программе с помощью оператора Declare. Этот опрератор имеет вид:

Declare Function APIProcName Lib DllName [(список арг.)] [As type]
Аргументы процедуре должны передаваться с ключевым словом ByVal. Все аргументы должны быть указаны.

_____________________________________________________________________

· При работе с файлами сначала файл нужно открыть:

Open filename [For mode] [Access access] [lock] As [#] filenum [Len=reclen]

Ø Filename – имя открываемого файла. Если не указан диск и маршрут, то в текущем каталоге.

Ø мode – режим доступа: APPEND – последовательный доступ с добавлением в коней файла; BINARY – двоичный доступ; INPUT – последовательный доступ для чтения из файла; OUTPUT – последовательный доступ для записи в файл; RANDOM – произвольный доступ для чтения и записи.

Ø lock – необязательное значение.

Ø filenum – номер от 1 до 511

Ø reclen – длина записи в байтах. Для произвольного доступа максимум 32767 и размер буфера для последовательных файлов 128.

Пример 1.

Dim filenum As Integer

filenum=FreeFile (первый незанятый номер)

Пусть filenum=300

OPEN "c:\documents\time_1.lst" FOR APPEND As filenum

(если filenum не указан или 0, то возвращается число между 1 и 255, если указана 1, то между 256 и 511).

INPUT # filenum A, B

Close # filenum

Пример 2.

Запись в файл: For count=0 To 100

WRITE # filenum, notes(count)

Next count

_____________________________________________________________________

· Функция SetTimer создает таймер с указанным значением блокировки времени.

UINT SetTimer (

HWND hWnd, // маркер(дескриптор) окна для сообщений таймера

UINT nIDEvent, // идентификатор таймера

UINT uElapse, // значение блокировки времени

TimerProc lpTimerFunc // адрес процедуры таймера

);

Параметры:

hWnd – Идентифицирует окно, которое будет связано с таймером. Это окно должно принадлежать вызывающему потоку. Если этот параметр НУЛЕВОЙ(ПУСТОЙ), никакое окно не связано с таймером, и nIDEvent параметр игнорируется.

nIDEvent – Определяет идентификатор таймера отличный от нуля. Если hWnd параметр НУЛЕВОЙ(ПУСТОЙ), этот параметр игнорируется.

uElapse – Определяет значение блокировки времени, в миллисекундах.

lpTimerFunc – Укажите функцию, которая будет запущена, когда значение блокировки времени истечет. Если lpTimerFunc НУЛЕВОЙ (ПУСТОЙ), система ставит WM_TIMER сообщение в очередь приложений. hwnd член структуры СООБЩЕНИЯ содержит значение hWnd параметра.

Возвращаемые значения:

Если функция отрабатывает, возвращаемое значение - целое число, идентифи-цирующее новый таймер. Приложение может передавать это значение, или строковый идентификатор, если он существует, в функцию KillTimer, чтобы уничтожить таймер. Если функциональные сбои при создании таймера, возвра-щаемое значение нулевое.

Замечания.

Приложение может обрабатывать WM_TIMER сообщения включением WM_TIMER – оператора выбора в оконной процедуре или определяя TimerProc функцию повторного вызова (отклика) при создании таймера. Когда Вы определяете TimerProc функцию повторного вызова (отклика), функция DispatchMessage просто вызывает функцию повторного вызова вместо оконной процедуры.

_____________________________________________________________________

· Функция KillTimer уничтожает указанный таймер.

BOOL KillTimer (

HWND hWnd, // маркер(дескриптор) окна, которое установило таймер

UINT uIDEvent // идентификатор таймера

);

Параметры:

hWnd – Опознает окно, связанное с указанным таймером. Это значение должно быть то же самое, что и значение hWnd в функции SetTimer, которая создавала таймер.

UIDEvent – Определяет таймер, который будет разрушен. Если маркер (дескриптор) окна, указанный в SetTimer, правилен (допустим), этот параметр должен быть тот же самый, поскольку значение uIDEvent получено из SetTimer. Если приложение вызывает SetTimer с значением

hWnd, равным ПУСТОМУ УКАЗАТЕЛЮ, этот параметр должен быть идентификатором таймера, возвращенным SetTimer.

Возвращаемые значения.

Если функция отрабатывает верно, возвращаемое значение отлично от нуля.

Если функция терпит неудачу, возвращаемое значение нулевое.

Замечания.

Функция KillTimer не удаляет WM_TIMER сообщения, уже отправленные по почте в очередь сообщений.

____________________________________________________________________

WM_TIMER – сообщение это сообщение, зарегистрированное в очереди потока сообщений или отправленное в соответствующую TimerProc, т. е. функцию, которая будет вызвана после того, как каждый интервал, указанный в функции SetTimer, установил таймер. Windows передает WM_TIMER сообщения в указанную TimerProc быстрее, чем для регистрации сообщения в очереди по-тока сообщений.

_____________________________________________________________________

TimerProc – определенная пользователем функция отклика, которая обраба-тывает WM_TIMER – сообщения.

VOID CALLBACK TimerProc (

HWND hwnd, // маркер(дескриптор) окна для сообщений таймера

UINT uMsg, // WM_TIMER сообщение

UINT idEvent, // идентификатор таймера

DWORD dwTime // текущее системное время

);

Параметры:

Hwnd – Опознает окно, связанное с таймером.

UMsg – Определяет WM_TIMER сообщение.

IdEvent – Определяет идентификатор таймера.

DwTime – Определяет число миллисекунд, которые протекли после запуска Windows. Это - значение, возвращенное функцией GetTickCount.

Возвращаемые значения:

Эта функция не возвращает значение.

Замечания:

TimerProc - имя функции.

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство

Агрономия

Преподавателям

Юридические темы

Google