| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Имитация окна dos в форме |
| Автор: Ibragim 21.10.2004, 02:02 |
| Всем ночи доброй. Тут еще один вопрос назрел. Есть форма, в ней некий объект "окно дос". В него с большой скоростью должна выводиться текстовая информация. Прекрасно работает TMemo.Text := TMemo.Text + 'NewText'; Однако для моей скорости очень много перерисовок и мерцаний. При той же скорости вывода если выводить в окно DOS в полноэкранном режиме (ну, переписать на Pascal'e под DOS) получается, понятное дело, все красивенько и т.п. Может, есть готовые решения для такой задачи? Уж больно неохота в DirectDraw лезть... |
| Автор: ~FoX~ 21.10.2004, 07:59 |
| А consol appliaction не подойдет? |
| Автор: Ibragim 21.10.2004, 10:11 |
| К сожалению, нет. Это должно выводиться в рамках большого проекта на отдельно взятой форме. |
| Автор: p0s0l 21.10.2004, 12:04 |
| Если дело в мерцаниях, попробуй Memo1.DoubleBuffered := True |
| Автор: Snowy 21.10.2004, 12:12 |
| 1. Можно сделать консольное апп и просто воткнуть его поверх своей формы в нужную позицию и нужного размера. 2. Рисовать на канве и скролить блоками вверх. 3. Если такая огромная скорость, то зачем вообще такое окно? Может хватит просто Tlabel? 4. Можно воткнуть , дать ему цвет белый-на-черном и разрешить wrap текста. Написать отдельную функцию, которая будет изменять содержимое этого лабела в зависимости от кол-ва строк в тексте на экран. Только не забыть убрать автосайз. В данном случае никакого скрола, а как раз имитация DOS окна. Только шрифт поставить консольный или хотя бы курьер. Никакого скрола - дискретная перерисовка. |
| Автор: ~FoX~ 21.10.2004, 12:24 |
| Ibragim Хм.....офтоп конечно, но зачем выводить на экран то что все равно никто не успивает читать |
| Автор: Girder 21.10.2004, 13:57 |
| Ibragim тебя спасет... Windows.SetParent (или SetPatent 1)Распакуй архив с сохранением дирректорий 2)Скомпилируй прогу в дирректории Console (PrConsole.dpr) 3)Скомпилируй(Project1.dpr) и запусти PS: Если тебе надо будет досовскую программу запустить вместо PrConsole то... замени PChar(PrConsole) на имя(с полным путем) твоей Dos проги... |
| Автор: Ibragim 22.10.2004, 18:28 |
| спасибо за кучу вариантов... пробуем! Что-то получится - напишу. 2Fox: там выводятся псевдографикой блочки разных оттенков, типа графика, причем представление информации должно быть именно таким (граафик и т.п не подходит). 2Girder: К сожалению, не спасает... Данные для вывода формируются уж очень сложно, зависят от четырех разных потоков - никак в консоль не завернуть.... К тому же они отображаются еще и в другом представлении. |
| Автор: Ibragim 22.10.2004, 20:02 |
| 2 pOsOl спасибо, ваш вариант самый простой и удачный. Осталась одна проблема - убирать тот текст что уходит вверх, чтобы была имитация окна как в досе. То есть скрол не нужен, нужно чтобы просто текст уходящий вверх "исчезал". Ничего не насоветуете? PS Спасибо всем откликнувшимся! |
| Автор: Pakshin A. S. 22.10.2004, 20:06 | ||
Как я понял, речь о Memo...
Вроде так... |