PDA

Просмотр полной версии : Проблема с Free Pascal



Instant
05.02.2006, 19:56
Программа работает с модулем графики.
Суть проблемы в том, что при запуске открывается соответственно два окна - окно графического исполнения и окно самой командной строки Паскаля. Так вот, ввод с клавиатуры действует лишь при активном окне Паскаля. То есть при активном графическом окне клавиатура бездействует и интерактивность невозможна. Приходится печатать в паскалевском, а смотреть на изменения в неактивном графическом на фоне.
Что делать?

Sir Zak
05.02.2006, 21:50
Это скорее всего по тому что, "графическое" окно не обрабатывает нажатия клавишь. Тебе скорее всего придеться писать обработсчик самому, или, если повезет, и есть такой модуль, юзать его.

Eidolon
06.02.2006, 10:13
А может перенаправление вывода в дебагере с консоли в дебаговое окно? %)

Instant
06.02.2006, 13:44
А может перенаправление вывода в дебагере с консоли в дебаговое окно? %)
А можно чуток более развернуто? Это как?

Eidolon
06.02.2006, 14:20
Экзешник попробуй откомпилить и запустить отдельно, без среды разработки. Там нормально работает?

Instant
06.02.2006, 21:54
Нет. Запускаю exe - все равно два окна выскакивают - графическое и эмуляция ДОСа (ну или не знаю как назвать, командная строка короче, неграфический Паскаль). И опять ввод с клавиатуры графическое не принимает.

Sir Zak
06.02.2006, 22:04
Давай так.

Что есть консоль? простым языком, окно которое обрабатывает нажатия клавиш. Выполняет команды.

Что есть твое графическое окно? Как я понял, это отдельное окно, в ктором показываеться твоя графика. По идеи оно не должно по умолчанию обрабатывать нажатия клавиш.
Так как :

1. Это делает консоль.
2. Их обработка, например, хотя бы отображение, может повлиять на "картинку".
Помню что в Паскеле, в граф. режиме нельзя было работать с консолью. То есть илбо текстово, либо графический режим. Видимо во Фри Паскале, пошли другим путем. Совместили в двух разных окнах.

Instant
06.02.2006, 22:20
Все так. Но неужели нет возможности сделать так, чтобы графическое окно принимало команды с клавиатуры?

Sir Zak
06.02.2006, 22:22
Вопрос. Зачем?

В паскале можно было переключаться между режимами.

Instant
06.02.2006, 22:36
Ну как зачем? По задумке графическое изображение должно меняться соответственно нажатой клавише. Оно и меняется, но приходится держать активным окно "консоли", то есть наблюдать изменения изображения на фоне.

Вот скрин:

http://zorgis.nm.ru/scr.JPG

На заднем фоне - графика (игра в "пятнадцать"). На переднем фоне, активное окно - вот оно-то и принимает клавиатуру. А графическое - нет. Неудобно.

Sir Zak
06.02.2006, 23:06
Так.
А какими средствами пользуеться графический модуль? DirectX, GDI или еще что?

Скорее всего тебе придеться обрабатывать нажатия клавиш самому.