Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

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

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

О:

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

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

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

gs '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

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

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