Я
не люблю много времени тратить на поиски информации о какой либо
функции. Это конечно же может задеть вас как человека в этом плане
ответственного, делающего все до победного конца.
Стало чуть проще. Данная функция получает метрики и конфигурационные настройки системы. Слово метрики не совсем понятно, возможно имеют в виду размеры. Переведем следующую строчку.
syntax highlighted by Code2HTML, v. 0.9.1
Переходим к реализации кода.
syntax highlighted by Code2HTML, v. 0.9.1
По этому я буду разбирать данную функцию методом тыка, т.е. попробовал применить, посмотрел результат.
Первым делом поискать описание данной функции в help файле Delphi 7. Открываем строку поиска, вводим GetSystemMetrics
и ожидаем в предвкушение результата. Ну что, есть что нибудь? У меня
есть, возможно у вас тоже что-то найдется. Видим что все написано на
английском, если у вас на русском, то вы первый обладатель справки по
Delphi 7 на русском языке. Попробуем понять и прочесть то, что до нас
хотели довести по этой функции составители документации. Ни чего не
понятно? Загоним это в Google Translator.
Стало чуть проще. Данная функция получает метрики и конфигурационные настройки системы. Слово метрики не совсем понятно, возможно имеют в виду размеры. Переведем следующую строчку.
Получает ширину и высоту элементов экрана Windows. Все возвращает в пикселях. Так, может на примерах попонятней будет.
int GetSystemMetrics(
int nIndex // Указываются параметр того, что мы хотим получить
);
syntax highlighted by Code2HTML, v. 0.9.1
Что
мы можем из этого заключить? Функция в качестве аргумента передается
параметр того что мы хотим получить (Например размеры экрана по x или у,
количество кнопок у мыши и т.д.) результатом функция возвратит нам эти
значения. Если функция завершится с ошибкой, она вернет ноль.
Так, ну что продолжим изучение на примере.
Предполагается
что вы знакомы со средой Delphi 7 и легко сможете разобраться куда
писать соответствущий код для достижения нужного нам результата.
Попробую расписать подробно, но могу забыть что-нибудь.
Создадим новый VCL проект File -> New -> VCL Forms Applicatio - Delphi for Win32
Сохраним проект под любым удобным для вас именем File -> Save Project As.. И имя тебе будет ex_p1, модуль формы назовем ex_p1_unit.
С
именем определились, теперь необходимо решить что выводить на нашу
форму. Для на нашего примера вполне достаточно вывести размеры экрана и
количество кнопок мыши. Остальные параметры вы можете вывести
самостоятельно.
Для это нам потребуется четыре Label, и одна кнопка закрытия окна. Четыре Label мы расположим на одной панели с включенным свойством Align := alClient, кнопку мы расположим на второй панели с включенным Align := alBottom. Это кнопка типа TBitBtn c установленным свойством Kind := bkClose. У нашей формы Form1 меняем одно свойство BorderStyle := bsDialog.
У вас должно получиться что-то в этом духе:
Переходим к реализации кода.
Начнем с обработчика событий OnCreate. В этом обработчике, в основном, и будут производится все страшные манипуляции с функцией GetSystemMetrics.
Заведем три переменных для хранения результата возвращаемого функцией GetSystemMetrics:
- для количества кнопок мыши (MouseButtonCount)
- для количества пикселей экрана по x (XScreenResolution)
- для количества пикселей экрана по y (YScreenResolution)
Параметры которые мы должный передать в GetSystemMetrics следующие:
- для количества кнопок мыши (SM_CMOUSEBUTTONS)
- для количества пикселей экрана по x (SM_CXSCREEN)
- для количества пикселей экрана по y (SM_CYSCREEN)
procedure TForm1.FormCreate(Sender: Tobject);
var
MouseButtonCount: Integer;
XScreenResolution: Integer;
YScreenResolution: Integer;
begin
MouseButtonCount := GetSystemMetrics( SM_CMOUSEBUTTONS);
XScreenResolution := GetSystemMetrics(SM_CXSCREEN);
YScreenResolution := GetSystemMetrics(SM_CYSCREEN);
Label4.Caption := IntToStr(MouseButtonCount);
Label2.Caption := IntToStr(XScreenResolution) + ' X ' + IntToStr(YScreenResolution);
end;
syntax highlighted by Code2HTML, v. 0.9.1
На этом примере можно посмотреть и другие параметры.
Комментариев нет:
Отправить комментарий