Перейти к основному содержимому

20.4. Как сделать, чтобы текст выводился не внизу окна основного описания, а сверху?

В: Как сделать, чтобы текст выводился не внизу окна основного описания, а сверху?

О:

Проще всего написать отдельную локацию, и потом вызывать её всякий раз, когда понадобится добавить текст вверху окна основного описания. Локация будет называться "p.top":

!#p.top
local $top_text = $args[0] & ! текст, который надо вывести сверху
!запоминаем текст в окне основного описания
local $main_txt = $maintxt
! очищаем окно основного описания
*clr
! выводим строку
*pl $top_text
! выводим текст, который был ранее
*p $main_txt

Теперь, чтобы добавить текст сверху, в нужном месте:

@@p.top('Строка, которая выведется над основным описанием!')

Этот пример можно развить:

local $top_text = $args[0] & ! текст, выводимый сверху
local $command = $iif($args[1], $args[1], "*pl") & ! команда, с помощью которой нужно вывести текст
local is_star_com = iif(instr($command, '*') = 1, 1, 0) & ! является ли первый символ команды звёздочкой
local $text = ""

if is_star_com:
! если первый символ команды выведения текста *
! значит нам нужен текст из окна основного описания
$text = $maintxt
*clr & ! очищаем окно основного описания
dynamic "<<$command>> $args[0]", $top_text & ! c помощью dynamic выполняем команду
*p $text & ! выводим исходный текст
else
! в противном случае
! нам нужен текст из окна дополнительного описания
$text = $stattxt
clr
dynamic "<<$command>> $args[0]", $top_text
p $text
end

Теперь можно выводить текст в окне основного и дополнительного описаний сверху разными способами:

@@p.top('Строка плюс переход на новую строку в окне основного описания')
@@p.top ('Строка плюс переход на новую строку в окне дополнительного описания','pl')
@@p.top ('Переход на новую строку плюс строка в окне доп описания','nl')

Два примера: