Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Any key в Delphi... [D6, Win2k]


Voldemar ©   (2002-06-27 21:20:00) 

Доброе время суток!
Подскажите, как в консольной прогесделать такую штуку...
В турбе я спокойно писАл
while not KeyPressed do
delay(0.01)

a в Делфах ни того, ни другого нет... Как?


VDen   (2002-06-29 11:08:00) [1]

Способ есть - вот вам функция KeyPressed на API.

function KeyPressed: Boolean;
Var irInBuf : TInputRecord;
W : DWord;
begin
KeyPressed := False;
if PeekConsoleInput(RHandle,irInBuf,1,W) then
if ( (irInBuf.EventType = Key_Event) and
(irInBuf.Event.KeyEvent.bKeyDown = true))
then
KeyPressed := true;
end;


Anatoly Podgoretsky   (2002-06-29 10:59:00) [2]

В Windows очень большое количество функция, для поддержки консольных приложений, больше 40 и было бы смешно думать что там нет ничего тебе нужного, тебе подойдет эта GetNumberOfConsoleInputEvents, учти ято консоль в Windows это не дос, к события ввода относятся не только ввод с клавиатуры, но и мышь и изменение размеров окна.


Voldemar   (2002-06-29 01:24:00) [3]

>REaliSt © (28.06.02 16:46)
В турбе крайне криво реализован TStringList, да и не уверен я, что вообще реализован. У меня была мысль сделать все там, но я отказался от нее - APIшные функции нужны...

Неужели же нет способа?


REaliSt   (2002-06-28 16:47:00) [4]

Или лучше в нормальной форме с использованием ApplicationEvents


REaliSt   (2002-06-28 16:46:00) [5]

В консоли такая фишка не прокатывает.
Лучше в турбе и пиши.


nimble   (2002-06-28 03:06:00) [6]

Sory, про консоль не заметил!


nimble   (2002-06-28 03:04:00) [7]

Помещаешь на форму компонент TApplicationEvents. У него по событию OnMessageпишешь:
if Msg.message=wm_keydown then ShowMessage("Код нажатой ... - "+IntToStr(Msg.wParam));


Наверх

Титульная страница Поиск, карта сайта Написать письмо