Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:basic_dialogue_programming_language:007 [2022-09-09 22:30] GreyWolf |
msx:basic_dialogue_programming_language:007 [2023-02-19 16:20] (текущий) GreyWolf |
||
---|---|---|---|
Строка 56: | Строка 56: | ||
С помощью функции ''INKEY$'' можно "прочитать" нажатие только тех клавиш, которым соответствует код какого–либо символа. Это делается так: | С помощью функции ''INKEY$'' можно "прочитать" нажатие только тех клавиш, которым соответствует код какого–либо символа. Это делается так: | ||
IF INKEY$="с и м в о л" THEN … | IF INKEY$="с и м в о л" THEN … | ||
- | Далее, для обнаружения нажатия какой–либо из клавиш: <key>ESC</key>, <key>TAB</key>, <key>'Ввод '⏎</key>, <key>SELECT</key>, <key>CLS/HOME</key>, <key>INS</key>, <key>DEL</key>, <key>←</key>, <key>↑</key>, <key>→</key>, <key>↓</key>, <key>CTRL+буква</key> используйте оператор: | + | Для обнаружения нажатия какой–либо из клавиш: <key>ESC</key>, <key>TAB</key>, <key>'Ввод '⏎</key>, <key>SELECT</key>, <key>CLS/HOME</key>, <key>INS</key>, <key>DEL</key>, <key>←</key>, <key>↑</key>, <key>→</key>, <key>↓</key>, <key>CTRL+буква</key> используйте оператор: |
IF INKEY$=CHR$(K) THEN … | IF INKEY$=CHR$(K) THEN … | ||
где К — код клавиши, нажатия которой ожидается. | где К — код клавиши, нажатия которой ожидается. | ||
- | К сожалению, клавиши <key>CAPS</key>, <key>SHIFT</key>, <key>GRAPH</key>, <key>CTRL</key>, <key>РУС</key>, <key>STOP</key> "нечитаемы" операторами ''[[#input1|INPUT$]]'' или ''[[#inkey|INKEY$]]''. Тем не менее, для чтения этих клавиш достаточно прочесть буфер NEWKEY (11 байтов) по адресу &HFBE5 (см. [[10#n1091|раздел X.9.1.]]). | + | К сожалению, клавиши <key>CAPS</key>, <key>SHIFT</key>, <key>GRAPH</key>, <key>CTRL</key>, <key>РУС</key>, <key>STOP</key> "нечитаемы" операторами ''[[#input1|INPUT$]]'' или ''[[#inkey|INKEY$]]''. Тем не менее для чтения этих клавиш достаточно прочесть буфер NEWKEY (11 байтов) по адресу &HFBE5 (см. [[010#n1091|раздел X.9.1.]]). |
{{anchor:e0711-02}} __//Пример 2//__. Пример программы, останавливаемой нажатием клавиши <key>SHIFT</key>: | {{anchor:e0711-02}} __//Пример 2//__. Пример программы, останавливаемой нажатием клавиши <key>SHIFT</key>: | ||
Строка 217: | Строка 217: | ||
"сбрасывает" значение функциональной клавиши с номером n. | "сбрасывает" значение функциональной клавиши с номером n. | ||
+ | {{anchor:key_list}} | ||
Оператор | Оператор | ||
<code> | <code> | ||
Строка 247: | Строка 248: | ||
KEY 2,"LIST"+CHR$(13) 'При нажатии клавиши F2 выполняется команда LIST. | KEY 2,"LIST"+CHR$(13) 'При нажатии клавиши F2 выполняется команда LIST. | ||
</code> | </code> | ||
- | Заметим, что символ ''CHR$(13)'' вызывает ввод команды (оператора) так же, как и нажатие клавиши <key>'Ввод '⏎</key>! | + | Заметим, что символ ''CHR$(13)'' вызывает ввод команды (оператора) так же как и нажатие клавиши <key>'Ввод '⏎</key>! |
Отметим, что при включении компьютера серии [[msx:msx_1]] значения функциональных клавиш устанавливаются по умолчанию следующим образом: | Отметим, что при включении компьютера серии [[msx:msx_1]] значения функциональных клавиш устанавливаются по умолчанию следующим образом: | ||
Строка 336: | Строка 337: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Человеческая изобретательность ни в чем не проявляется так, как в играх. | Человеческая изобретательность ни в чем не проявляется так, как в играх. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Из письма Г.В.Лейбница Б.Паскалю// | + | —//Из письма Г.Лейбница Б.Паскалю// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 345: | Строка 346: | ||
В комплекте MSX–компьютера имеется два периферийных устройства для ввода информации, которые называются //джойстиками// ("joy stick" — "палочка радости"). | В комплекте MSX–компьютера имеется два периферийных устройства для ввода информации, которые называются //джойстиками// ("joy stick" — "палочка радости"). | ||
- | Подробнее джойстиках [[msx:general_purpose_port:general_purpose_port#joystick|здесь]]((Примечание редактора)). | + | Подробнее джойстиках [[msx:general_purpose_port:#joystick|здесь]]((Примечание редактора)). |
Каждый джойстик состоит из двух блоков: //рукоятки и кнопки//. Обычно у джойстика имеется одна кнопка. Кроме того, к каждому джойстику можно присоединить дополнительно ещё по одной кнопке (отметим, что у некоторых моделей их две изначально!). | Каждый джойстик состоит из двух блоков: //рукоятки и кнопки//. Обычно у джойстика имеется одна кнопка. Кроме того, к каждому джойстику можно присоединить дополнительно ещё по одной кнопке (отметим, что у некоторых моделей их две изначально!). | ||
Строка 438: | Строка 439: | ||
Оператор вызывает звуковой сигнал (''BEEP''), если кнопка джойстика нажата (т.е. ''STRIG(0)'' имеет значение -1). | Оператор вызывает звуковой сигнал (''BEEP''), если кнопка джойстика нажата (т.е. ''STRIG(0)'' имеет значение -1). | ||
- | При использовании этой функции, например, в процессе компьютерной игры, когда требуется "вести стрельбу", функция ''STRIG(0)'' ежесекундно задействуется много раз. Для этих частых проверок значений существует специальный термин //"опрос"//. | + | При использовании функции ''STRIG(0)'', например, в процессе компьютерной игры (скоростная стрельба по цели), она ежесекундно задействуется много раз. Для этих частых проверок значений существует специальный термин "опрос". |
Метод опроса иллюстрируется [[#e0713-02|примером 2]]. Программа начинается с вопроса пользователю о том, располагает ли он джойстиком или работает за клавиатурой. Далее запрашиваются состояния пусковых кнопок, и в зависимости от | Метод опроса иллюстрируется [[#e0713-02|примером 2]]. Программа начинается с вопроса пользователю о том, располагает ли он джойстиком или работает за клавиатурой. Далее запрашиваются состояния пусковых кнопок, и в зависимости от | ||
Строка 461: | Строка 462: | ||
В ожидании нажатия клавиши "пробел" опрос будет выполняться постоянно, что делает возможной //немедленную// реакцию программы. Напомним Вам, что нажатие клавиши "пробел" может также проверяться с помощью функции ''INKEY$'', но в этом случае компьютер будет проверять текущее состояние буфера клавиатуры. | В ожидании нажатия клавиши "пробел" опрос будет выполняться постоянно, что делает возможной //немедленную// реакцию программы. Напомним Вам, что нажатие клавиши "пробел" может также проверяться с помощью функции ''INKEY$'', но в этом случае компьютер будет проверять текущее состояние буфера клавиатуры. | ||
- | //Замечание//. Функция ''STRIG(0)'' возвращает (-1) только, если клавиша "пробел" нажата во время //вычисления// значения этой функции. | + | //Замечание//. Функция ''STRIG(0)'' возвращает -1 только, если клавиша "пробел" нажата во время //вычисления// значения этой функции. |
{{anchor:e0713-03}} __//Пример 3//__. | {{anchor:e0713-03}} __//Пример 3//__. | ||
Строка 855: | Строка 856: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Перед тем, как выполнить программу, содержащую переход к подпрограммам по событию, не забудьте (если работаете на компьютере [[msx:msx_2]]) набрать ''[[msx:network_basic#CALL NETEND]]''. | + | Перед тем, как выполнить программу, содержащую переход к подпрограммам по событию, не забудьте (если работаете на компьютере [[msx:msx_2]]) выполнить команду ''[[msx:network_basic#CALL NETEND]]''. |
</WRAP> | </WRAP> | ||
Строка 864: | Строка 865: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Стоять я не могу… Мои колени слабеют… \\ | Стоять я не могу… Мои колени слабеют… \\ | ||
душно… Где ключи? Ключи, ключи мои… | душно… Где ключи? Ключи, ключи мои… | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//А.С. Пушкин// | + | —//А.Пушкин// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
- | [[msx:basic:]] включает в себя средство, позволяющее использовать функциональные клавиши не только для ввода некоторого слова, но и для прерывания выполнения программы и вызова определённой подпрограммы. | + | Интерпретатор [[msx:basic:]] включает в себя средство, позволяющее использовать функциональные клавиши не только для ввода некоторого слова, но и для прерывания выполнения программы и вызова определённой подпрограммы. |
Оператор | Оператор | ||
Строка 890: | Строка 891: | ||
осуществляет передачи управления подпрограммам, расположенным со строк n1, n2, …, nk, причём нажатие функциональной клавиши <key>Fk</key> (k=1, 2, …, 10) приводит к передаче управления подпрограмме, начинающейся со строки с номером nk (k=1, 2, …, 10). Если Вы хотите использовать только некоторые функциональные клавиши, то пропустите ненужные номера строк (оставив запятые!). | осуществляет передачи управления подпрограммам, расположенным со строк n1, n2, …, nk, причём нажатие функциональной клавиши <key>Fk</key> (k=1, 2, …, 10) приводит к передаче управления подпрограмме, начинающейся со строки с номером nk (k=1, 2, …, 10). Если Вы хотите использовать только некоторые функциональные клавиши, то пропустите ненужные номера строк (оставив запятые!). | ||
- | {{anchor:key1}} | + | {{anchor:key_on}} |
Предварительно функциональную клавишу <key>Fk</key> необходимо "активизировать" оператором | Предварительно функциональную клавишу <key>Fk</key> необходимо "активизировать" оператором | ||
<WRAP group> | <WRAP group> | ||
Строка 906: | Строка 907: | ||
Теперь перед выполнением каждого нового оператора программы интерпретатор будет проверять, не была ли нажата какая–нибудь "активизированная" функциональная клавиша, и если такое нажатие произошло, то интерпретатор вызывает соответствующую подпрограмму. | Теперь перед выполнением каждого нового оператора программы интерпретатор будет проверять, не была ли нажата какая–нибудь "активизированная" функциональная клавиша, и если такое нажатие произошло, то интерпретатор вызывает соответствующую подпрограмму. | ||
+ | {{anchor:key_off}} | ||
Для блокирования (запрещения) такого вызова необходимо выполнить оператор | Для блокирования (запрещения) такого вызова необходимо выполнить оператор | ||
<WRAP group> | <WRAP group> | ||
Строка 919: | Строка 921: | ||
Как и в предыдущих случаях, значение в скобках k определяет номер функциональной клавиши, для которой выполняется данный оператор. | Как и в предыдущих случаях, значение в скобках k определяет номер функциональной клавиши, для которой выполняется данный оператор. | ||
- | Иногда возникает необходимость временно оградить программу от прерываний, вызываемых функциональными клавишами, и в то же время запомнить каждое нажатие такой клавиши с тем, чтобы впоследствии можно было выполнить все соответствующие вызовы подпрограммы. Это достигается с помощью оператора | + | {{anchor:key_stop}} |
+ | Иногда возникает необходимость временно оградить программу от прерываний, вызываемых функциональными клавишами, и в то же время запомнить каждое нажатие такой клавиши, с тем чтобы впоследствии можно было выполнить все соответствующие вызовы подпрограммы. Это достигается с помощью оператора | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
Строка 972: | Строка 975: | ||
- Наберите [[#e0721-02|пример 2]], вставив строку: <code>135 IF I=50 THEN KEY(1)STOP</code> | - Наберите [[#e0721-02|пример 2]], вставив строку: <code>135 IF I=50 THEN KEY(1)STOP</code> | ||
- | Оператор ''ON KEY GOSUB'' позволяет легко организовывать "листание" законченных программных фрагментов во время выполнения программы, например, страницы справочной информации 1÷3 вызываются нажатием на клавиши | + | Оператор ''ON KEY GOSUB'' позволяет легко организовывать "листание" законченных программных фрагментов во время выполнения программы; например, страницы справочной информации 1÷3 вызываются нажатием на клавиши |
<key>F1</key>÷<key>F3</key>, демонстрационный пример выполняется при нажатии клавиши <key>F4</key>, | <key>F1</key>÷<key>F3</key>, демонстрационный пример выполняется при нажатии клавиши <key>F4</key>, | ||
выход из программы — при нажатии клавиши <key>F5</key> и т.д. | выход из программы — при нажатии клавиши <key>F5</key> и т.д. | ||
Строка 1119: | Строка 1122: | ||
90 RETURN | 90 RETURN | ||
</code> | </code> | ||
- | На закуску отметим интересный факт: | + | "На закуску" отметим интересный факт: |
\\ {{.examples:0723-012.bas|}} \\ [[+tab|wmsxbpge>0723-012.bas]] | \\ {{.examples:0723-012.bas|}} \\ [[+tab|wmsxbpge>0723-012.bas]] | ||
<code> | <code> | ||
Строка 1178: | Строка 1181: | ||
* n4 — номер первой строки подпрограммы, которой передаётся управление при нажатии кнопки 2 джойстика 2. | * n4 — номер первой строки подпрограммы, которой передаётся управление при нажатии кнопки 2 джойстика 2. | ||
- | Для того, чтобы переход к подпрограмме по джойстику был возможен, его можно подтвердить, отменить или приостановить соответственно операторами | + | Для того чтобы переход к подпрограмме по джойстику был возможен, его можно подтвердить, отменить или приостановить соответственно операторами |
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
Строка 1390: | Строка 1393: | ||
</WRAP> | </WRAP> | ||
- <WRAP> Приоритет (в порядке убывания) при одновременном возникновении событий: | - <WRAP> Приоритет (в порядке убывания) при одновременном возникновении событий: | ||
- | * обработка ошибок в программе пользователя | + | * обработка ошибок в программе пользователя; |
- | * ''[[07#onkeygosub|ON KEY GOSUB]]'' | + | * ''[[007#onkeygosub|ON KEY GOSUB]]''; |
- | * ''[[07#onstopgosub|ON STOP GOSUB]]'' | + | * ''[[007#onstopgosub|ON STOP GOSUB]]''; |
- | * ''[[05#onspritegosub|ON SPRITE GOSUB]]'' | + | * ''[[005#onspritegosub|ON SPRITE GOSUB]]''; |
- | * ''[[07#onstickgosub|ON STICK GOSUB]]'' | + | * ''[[007#onstickgosub|ON STICK GOSUB]]''; |
- | * ''[[07#onstringgosub|ON STRIG GOSUB]]'' | + | * ''[[007#onstringgosub|ON STRIG GOSUB]]''; |
- | * ''[[07#onintervalgosub|ON INTERVAL GOSUB]]'' | + | * ''[[007#onintervalgosub|ON INTERVAL GOSUB]]''; |
- | * [[msx:network_basic|прерывания в локальной сети]] | + | * [[msx:network_basic|прерывания в локальной сети]]; |
* другие прерывания. | * другие прерывания. | ||
</WRAP> | </WRAP> | ||
Строка 1636: | Строка 1639: | ||
* ''SET'', ''PROMPT'' — служебные слова; | * ''SET'', ''PROMPT'' — служебные слова; | ||
* подсказка — значение строковой константы, длина которого не более 6 символов; | * подсказка — значение строковой константы, длина которого не более 6 символов; | ||
- | переопределяет подсказку Ok. | + | позволяет переопределить стандартную системную подсказку Ok. |
Примечание. Можно сохранить результат действия только одного из операторов ''[[#settitle|SET TITLE]]'', ''[[#setpassword|SET PASSWORD]]'' или ''[[#setprompt|SET PROMPT]]'': использованный последним "замещает" предыдущий. | Примечание. Можно сохранить результат действия только одного из операторов ''[[#settitle|SET TITLE]]'', ''[[#setpassword|SET PASSWORD]]'' или ''[[#setprompt|SET PROMPT]]'': использованный последним "замещает" предыдущий. | ||
Строка 1676: | Строка 1679: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Мартобря 86 числа. | Мартобря 86 числа. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Н.В.Гоголь. Записки сумасшедшего// | + | —//Н.Гоголь. Записки сумасшедшего// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 1762: | Строка 1765: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Всё врут календари. | Всё врут календари. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1808: | Строка 1811: | ||
Команда ''GET TIME Z$,A'' возвращает значение, определяющее время подачи подачи сигнала. | Команда ''GET TIME Z$,A'' возвращает значение, определяющее время подачи подачи сигнала. | ||
</WRAP> | </WRAP> | ||
- | Отметим, что подача сигнала не является автоматической. Для её осуществления необходимо использовать подпрограмму, сравнивающую текущие дату и время с заданными параметром A, и в случае совпадения выдающую сигнал ''BEEP'' или определённое сообщение. | + | Отметим, что подача сигнала не является автоматической. Для её осуществления необходимо использовать подпрограмму, сравнивающую текущие дату и время с заданными параметром A и в случае совпадения выдающую сигнал ''BEEP'' или определённое сообщение. |
__//Примеры//__: | __//Примеры//__: | ||
Строка 1850: | Строка 1853: | ||
Ok | Ok | ||
</code> | </code> | ||
- | * <WRAP>{{anchor:e073-06}} 6) Ваш компьютер можно использовать и в бытовых целях. Если не хотите опаздывать на свидание, пользуйтесь возможностями компьютеров [[msx:msx_2]] !!! | + | * <WRAP>{{anchor:e073-06}} 6) Ваш компьютер можно использовать и в бытовых целях. Если не хотите опаздывать на свидание, пользуйтесь возможностями компьютеров [[msx:msx_2]] ! |
\\ {{.examples:073-06.bas|}} \\ [[+tab|wmsxbpge>073-06.bas]] | \\ {{.examples:073-06.bas|}} \\ [[+tab|wmsxbpge>073-06.bas]] | ||
<code> | <code> | ||
Строка 1875: | Строка 1878: | ||
- | Также средством инициализации является файл [[.009#autoexecbas|AUTOEXEC.BAS]]. | + | Также средством инициализации является файл [[009#autoexecbas|AUTOEXEC.BAS]]. |
{{anchor:call}} | {{anchor:call}} | ||
Строка 1900: | Строка 1903: | ||
Используется в следующих случаях: | Используется в следующих случаях: | ||
- | * [[09#ramdisk|Использование RAM–диска]] | + | * [[009#ramdisk|Использование RAM–диска]] |
* [[msx:disk_basic]] | * [[msx:disk_basic]] | ||
* [[msx:network_basic]] | * [[msx:network_basic]] | ||
Строка 1994: | Строка 1997: | ||
* //уплотнённая//. | * //уплотнённая//. | ||
- | Каждая из них может быть изменена с помощью команды расширения режима печати, при этом шаг увеличивается в два раза (см. [[07#n7413|раздел VII.4.1.3.]]). | + | Каждая из них может быть изменена с помощью команды расширения режима печати, при этом шаг увеличивается в два раза (см. [[007#n7413|раздел VII.4.1.3.]]). |
Предлагаем Вашему вниманию таблицу: | Предлагаем Вашему вниманию таблицу: | ||
Строка 2058: | Строка 2061: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
- | "M∗∗∗ сказал молодому человеку, который не замечал,что его любит женщина:"Вы ещё так юны, что, видно, разбираете только крупный шрифт". | + | "M<sup>∗∗∗</sup> сказал молодому человеку, который не замечал,что его любит женщина:"Вы ещё так юны, что, видно, разбираете только крупный шрифт". |
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Себастьян Шамфор. Характеры и анекдоты// | + | —//С.Шамфор. Характеры и анекдоты// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2408: | Строка 2411: | ||
|для шага //"цицеро"//|136| | |для шага //"цицеро"//|136| | ||
|для шага //"элите"//|163| | |для шага //"элите"//|163| | ||
- | |для //уплотняемого// шага|233| | + | |для //уплотненного// шага|233| |
{{anchor:e074-17}} __//Пример 17//__. Установка полей. | {{anchor:e074-17}} __//Пример 17//__. Установка полей. | ||
Строка 2469: | Строка 2472: | ||
LPRINT CHR$(27);"(";"n11n12n13,n21n22n23,...nn1nn2nn3." | LPRINT CHR$(27);"(";"n11n12n13,n21n22n23,...nn1nn2nn3." | ||
</code> | </code> | ||
- | При этом аннулируются все позиции текущей горизонтальной табуляции и устанавливает новые, определённые трёхзначными числами. | + | При этом аннулируются все позиции текущей горизонтальной табуляции и навливаются новые, определённые трёхзначными числами. |
\\ {{.examples:074-183.bas|}} <code> | \\ {{.examples:074-183.bas|}} <code> | ||
1 POKE &HF418,1 | 1 POKE &HF418,1 | ||
Строка 2483: | Строка 2486: | ||
Метки будут установлены в колонках 8, 16 и 24. Запятые в 10–й строке используются для разделения цепочки меток, точка — для окончания определения. | Метки будут установлены в колонках 8, 16 и 24. Запятые в 10–й строке используются для разделения цепочки меток, точка — для окончания определения. | ||
</WRAP> | </WRAP> | ||
- | * <WRAP> 4) Для того, чтобы стереть часть горизонтальных меток из набора печатающего устройства, существует следующая команда: | + | * <WRAP> 4) Для того чтобы стереть часть горизонтальных меток из набора печатающего устройства, существует следующая команда: |
<code> | <code> | ||
LPRINT CHR$(27);")";"n11n12n13,n21n22n23,...nn1nn2nn3." | LPRINT CHR$(27);")";"n11n12n13,n21n22n23,...nn1nn2nn3." | ||
Строка 2595: | Строка 2598: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
— Боюсь, что от объяснений все проигрывает,— сказал он. \\ | — Боюсь, что от объяснений все проигрывает,— сказал он. \\ | ||
— Одни только результаты впечатляют гораздо больше. | — Одни только результаты впечатляют гораздо больше. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Конан Дойль. Приключения клерка// | + | —//А.Конан Дойль. Приключения клерка// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2649: | Строка 2652: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Сделаешь раз по сто — вот и будет просто.<WRAP rightalign> | Сделаешь раз по сто — вот и будет просто.<WRAP rightalign> | ||
- | —//П.А. Федотов// | + | —//П.Федотов// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2717: | Строка 2720: | ||
выполняет макрокоманду, которая предварительно была определена при помощи макроопределения. | выполняет макрокоманду, которая предварительно была определена при помощи макроопределения. | ||
- | После описания макроопределения, Вы можете использовать макрокоманду в любой требуемый момент времени и печатающее устройство будет "делать" все, что Вы включили в макроопределение. | + | После описания макроопределения Вы можете использовать макрокоманду в любой требуемый момент времени и печатающее устройство будет "делать" все, что Вы включили в макроопределение. |
{{anchor:e074-22}} __//Пример 22//__. Макроопределение для установки принтера в исходное положение всех стилей печати. | {{anchor:e074-22}} __//Пример 22//__. Макроопределение для установки принтера в исходное положение всех стилей печати. | ||
Строка 2753: | Строка 2756: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Все правила достойного поведения давным–давно известны, | Все правила достойного поведения давным–давно известны, | ||
остановка за малым — за умением ими пользоваться. | остановка за малым — за умением ими пользоваться. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Блез Паскаль. Мысли// | + | —//Б.Паскаль. Мысли// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> |