Готового решения не встречал — область применения довольна специфична — не каждому нужен телесуфлер .
Делается довольно просто. Нужен буфер на весь экран, буфер на новую строку, буфер, высота которого равна размеру шага. Алгоритм настолько прост, что его, вероятно, даже и приводить неуместно. Единственное, что нужно учесть — скорость движения регулируется шагом, а не частотой перерисовки экрана. Частота перерисовки экрана зависит только от частоты обновления выходного устройства, например, монитора.
Здравствуйте Alexey Karak, Вы писали:
AK>Готового решения не встречал — область применения довольна специфична — не каждому нужен телесуфлер .
я нашел готовую(не в сырцах) прогу на делфях WinSufler — стоит 200 баков(значит не все так просто! )...
и демка не работает на моем компе почему-то.
а автор похоже на нее забил
AK>Делается довольно просто. Нужен буфер на весь экран, буфер на новую строку, буфер, высота которого равна размеру шага. Алгоритм настолько прост, что его, вероятно, даже и приводить неуместно.
Уместно!
У меня по зеркалам двойка в школе была ))
Единственное, что нужно учесть — скорость движения регулируется шагом, а не частотой перерисовки экрана. Частота перерисовки экрана зависит только от частоты обновления выходного устройства, например, монитора.
AK>>Готового решения не встречал — область применения довольна специфична — не каждому нужен телесуфлер .
PPA>я нашел готовую (не в сырцах) прогу на делфях WinSufler — стоит 200 баков(значит не все так просто! )... PPA>и демка не работает на моем компе почему-то. PPA>а автор похоже на нее забил
Вероятно, имеется в виду программа Игоря Поливаного? Сейчас он уже занимается другим и, кажется, в другой стране.
AK>>Делается довольно просто. Нужен буфер на весь экран, буфер на новую строку, буфер, высота которого равна размеру шага. Алгоритм настолько прост, что его, вероятно, даже и приводить неуместно.
PPA>Уместно! PPA>У меня по зеркалам двойка в школе была ))
Ну тогда вот цитата из Help'a по StretchBlt:
StretchBlt creates a mirror image of a bitmap if the signs of the nWidthSrc and nWidthDest parameters or of the nHeightSrc and nHeightDest parameters differ. If nWidthSrc and nWidthDest have different signs, the function creates a mirror image of the bitmap along the x-axis.
Если буфер строки уже весь показан, то выводим очередную строку текста в буфер строки, флипуем его, переносим соответствующий кусок в буфер шага или сразу в сдвинутый буфер кадра. И т.д. если высота буфера кадра не кратна шагу, то возникает несколько дополнительных шагов. В чём проблема-то?
PPA>Единственное, что нужно учесть — скорость движения регулируется шагом, а не частотой перерисовки экрана. Частота перерисовки экрана зависит только от частоты обновления выходного устройства, например, монитора.
PPA>И тут плиз подробнее.
Подробнее уже некуда . Частота обновления экране не зависить от скорости движения текста — начинающие часто пытаются сделать такую привязку.
Здравствуйте Alexey Karak, Вы писали:
PPA>>Уместно! PPA>>У меня по зеркалам двойка в школе была )) AK>Ну тогда вот цитата из Help'a по StretchBlt: AK>StretchBlt creates a mirror image of a bitmap if the signs of the nWidthSrc and nWidthDest parameters or of the nHeightSrc and nHeightDest parameters differ. If nWidthSrc and nWidthDest have different signs, the function creates a mirror image of the bitmap along the x-axis.
Спасибо!
AK>Если буфер строки уже весь показан, то выводим очередную строку текста в буфер строки, флипуем его, переносим соответствующий кусок в буфер шага или сразу в сдвинутый буфер кадра. И т.д. если высота буфера кадра не кратна шагу, то возникает несколько дополнительных шагов. В чём проблема-то?
Нужно прокручивать содержимое RTF файла.
Как выводить форматированный текст по строчкам в буфер?
PPA>Нужно прокручивать содержимое RTF файла. PPA>Как выводить форматированный текст по строчкам в буфер?
В голову приходят плохие решения — либо самостоятельно парсить RTF, либо работать с HTML и парсить, опять-таки, самостоятельно. Отрисовывать всё-равно придётся "руками". Можно поискать готовые решения в виде библиотек. Да и самому написать не очень сложно — для суфлера не нужна сложная разметка текста.