хочу сделать что-то вроде терминала, т.е. чтобы данные, приходящие в порт сразу же печатались на экране, при этом программа не должна зависать на время ожидания данных. можно ли реализовать это без тредов, таймеров и прочих извращений?
Привет. Ответ - нет. И вообще "с извращениями" - это основной путь кодинга под винду, ты разве не знаешь?))) Если серьезно, то в винде можно работать с com-портом (и не только) используя обычные функции CreateFile, Write/ReadFile. Есть функции для работы с параметрами порта. А еще есть чудесная функция WaitCommEvent (ожидание событий порта), которую я как токо не вызывал, какие токо мануалы не курил - она все равно чихать хотела на все события порта. Поэтому читать данные из порта приходится в цикле, а цикл выносить в "извращенский поток". Рекомендую по теме книжку "Нестандартные приемы программирования на Delphi" Юрия Ревича, глава 20. Можно взять на http://all-ebooks.com ТОЛЬКО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ!!!! ))