TURBO PASCAL |
Новости
|
10.2. МОДУЛЬ WINCRTВ состав ВР входит модуль WinCRT, с помощью которого создается полноценное Windows—окно с собственной оконной функцией. Все действия по созданию окна выполняются в установочной секции модуля и, следовательно, скрыты от программиста. Таким образом, многие MS-DOS—программы можно практически без переделки перенести в среду Windows: для этого достаточно указать ссылку на WinCRT в предложении Uses. Например, следующая программа выводит график и таблицу значений функции у = sin(x): Program WinCRT_Demo; Uses WinCRT; var k: Integer; {Параметр цикла} const NX = 50; {Количество точек по горизонтали} dX = 2*pi/NX; {Шаг табуляции} NY = 10; {Амплитуда графика} begin ScreenSize.X := 80; {Ширина виртуального экрана} ScreenSize.Y := 60; {Длина экрана} AutoTracking := False;{Запрещаем прокрутку} for k := 0 to NX do begin {Выводим ось абсцисс:} GotoXY(k+l,NY) ; Write(' -') ; {Выводим точки графика:} GotoXY(k+1,Round(NY*(1+sin(dX*k)))); Write ('*'); {Формируем таблицу значений:} GotoXY(NX+5,k+l) ; Write(dX*k:4:2,sin(dX*k):8:2) end; end. После ссылки на WinCRT в распоряжение программы предоставляются некоторые из процедур и функций стандартного модуля CRT, рассчитанные на текстовый режим работы. В частности, программа может использовать стандартные процедуры ввода—вывода ReadLn и WriteLn, функции KeyPressed и ReadKey, процедуру GotoXY. Для программы создается специальное окно, размеры и положение которого можно менять. В это окно направляется текстовый вывод программы, причем с помощью стандартных для Windows полос управления по бокам окна можно просмотреть вывод, не умещающийся полностью в пределах окна. Следует учестьг что кодировка символов кириллицы в Windows отличается от широко используемой альтернативной кодировки ДОС, поэтому, если Ваша программа посылает на экран русскоязычные сообщения, в Windows—окне эти сообщения будет невозможно прочитать. Символы кириллицы в Windows используют последние 64 значения кодов: диапазон от 192 до 223 занимают коды заглавных букв от А до Я (без Ё), а диапазон от 224 до 255 — коды строчных буквы от а до я (без ё). Код буквы Ё — 168, а ё - 184. Д^я преобразования символов можно использовать такую функцию: Function OEM_to_ANSI(S: String): String; var k: Integer; begin for k := 1 to Length(S) do case S[k] of •A'..'Я': S[k] := chr(ord(S[k])-ord('A')+192) ; 'a'..'!!': S[k] := chr(ord(S[k])-ord('a')+224) ; •p'..'я': S[k] := chr(ord(S[k])-ord('p')+240) end; OEM_to_ANSI := S end; Вставьте в текст предыдущей программы эту функцию, а перед оператором for k := 0 to NX do добавьте WriteLn(OEM_to_ANSI('График функции SIN(X)')) ; чтобы в Windows — окне напечатать заголовок графика. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |