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

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 $screen = $mid($args[1], 1, 1) & ! получаем первый символ из команды

local $text = ""
if $screen="*":
! если первый символ команды выведения текста *

! значит нам нужен текст из окна основного описания

$text=$maintxt
else
! в противном случае

! нам нужен текст из окна дополнительного описания

$text=$stattxt
end
! теперь с помощью dynamic повторяем действия из предыдущего примера:

dynamic "
<<$screen>>clr
<<$command>> $args[0]
<<$screen>>p $args[1]
", $top_text, $text

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

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