Другие языки программирования и технологии

Модули CRT и System.Windows.Forms в pascal не работают вместе, как решить?

Писал программу на формах в паскале, и появилась надобность в горячих клавишах, подключил CRT модуль что бы взять из него ReadKey() но по итогу за место моего окна мне выводится консоль с надписью 'Программа завершена, нажмите ...', а формы как как будто и не существуешь, как только отключаю CRT все работает как надо - запускается моя форма, как их объединить? Что бы работал и CRT и Формы?
скорее всего где-то есть неоднозначность в указанных именах, т. е. когда и в CRT и WinForms есть ДОПУСТИМ класс Control. И какой из двух вызвать либо Pascal.ABC(указывайте что это моднявый паскаль, диалектов куча) сам реашет либо пишет ошибку.

если первое верно, то выход - вместо Control указывать полный путь до класса: System.Windows.Forms.Control или CRT.Control

как найти подобные места?... ну вот тут то и проблема, как вариант отключить System.Windows.Forms и скопировать ошибки, отключить CRT и скопировать ошибки, те что неповторяются но относятся к формам и есть проблемные места

ещё проблема может быть в том что CRT принудительно создает консольное окно и формы уже немогут подтянуться и создать его как графическое.

кстати есть же System.Console.ReadKey(), правда хрен знает как оно работает на паскале и не уверен что под ваши цели подойдет.
Но коль вы на нетах пишите то юзайте документацию по шарпам с адаптацией на паскаль. да и winforms там лучше описаны и скорее всег имеют поддержку hot-key из коробки
Nurl@n Apiev
Nurl@n Apiev
5 038
Лучший ответ
Бактыбай Есмаганбетов Pascal ABC список модулей выглядит так: uses System, System.Drawing, System.Windows.Forms, ScintillaNET, System.IO, CRT;
Nurl@n Apiev давайте начнем с того, что я описал решение проблемы но не задачи, а исходя из неё вы явно не туда смотрите - по идее горячие клавиши могут делаться на хуках, wndproc и ивентах. первые два довольно низкоуровневые, а третий лишь результат второго. ни одно из них не практиковал в разрезе hot-key!
>как решить?
Очень просто решить. Надо решить для себя, консольное у тебя будет приложение, или тебе формочки нужны.

>подключил CRT модуль что бы взять из него ReadKey()
Просто не делай так. В формах тебе ReadKey нафиг не уперся, да и работать не будет.
_V
_V_I_T_A_L_I_K_777
91 562
Бактыбай Есмаганбетов Окей но тогда как мне считать сразу несколько клавиш? Я могу использовать событие KeyPress у виджета, но там нет перехвата служебных клавиш по типу CTRL или ALT а они мне как раз и нужны
Горячие клавиши в Forms работают по-другому. Размести на форме кнопку, и в названии после нужной буквы поставь значок &. Это и будет горячая клавиша.

Похожие вопросы