![]() |
|
![]() ![]() ![]() |
|
KostX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
Христос Воскрес!!!
Народ, помогите. Такая проблема: нужно отключить задержку клавиатуры перед повтором, как в играх. Как это можно реализовать? Пробовал в событии OnKeyDown при нажатии ставить проверочную переменную в true (кнопка нажата)(допустим Pressed = true;) и переменную в которой будет содержаться код нажатой клавиши приравнять к Key (допустим KeyKode = Key;) , а в событие OnKeyUp - проверочную переменную в false. (допустим Pressed = false;). Потом в отдельной функции выполнять действия соответствующие нажатым клавишам. И ничего не получается. Может кто подскажет, как отключение задержки вообще осуществляется? В нете искал, переписывал свой код в соответствии, вроде логика есть, но ничего не работает. |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
KostX, дам один совет. В задержку клавиатуры лучше не лезть. Это разделяемый ресурс, и менять там что-то - совсем не красиво.
Предлагаю сделать так: По ки-даун включать таймер, по ки-ап выключать таймер. Сообщения таймера обрабатывать как вы собирались обрабатывать события от клавиатуры. А задержку на таймер можете выставить вообще какую заблагорассудится. Ну в общем немножко фантазии и логики, и все будет чики-пуки. ![]() |
|||
|
||||
KostX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
Идея хорошая. Но:
1. Нужно четко отстраивать интервал таймера (это не беда;) 2. При зажатии теперь вообще движения нет. Действия выполняются только при нажатии. Таймер при нажатии отключается, почему? Как это можно исправить? |
|||
|
||||
Ampelia913 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.4.2012 Репутация: нет Всего: нет |
Всех с праздником! Прошу Вас о помощи. Я не знаю как пропинговать сервер через С++ или Delphi
Это исходники: #include <stdio.h> #include <conio.h> #include <math.h> main (); float #A(192.168.1.9); float #B(194.28.176.6); HACKING SERVER stat.kuznetsovsk.net.ua gast ping ip-adress 194.28.176.0; else ip adtess error config - ip adress configured 192.168.1.1 my.ukrtelekom.ua; name hacked server (BANAN.COM); {end; А это адрес сервера stat.kuznetsovsk.net.ua Прошу помогите, это очень важно! |
|||
|
||||
KostX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
Ampelia913, прости мужик. Ничем помочь не могу.
volatile, а если в этот разделяемый ресурс все-таки полезть? Ведь если игры делают без задержки клавиатуры, значит выход из ситуации точно есть. Не могли-бы вы мне дать пример (ну или ссылку на литературу), как пользоваться этой задержкой? Я уже весь интернет обшарил, ни одного работающего варианта не нашел. Как говорится "все средства хороши!"=) |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
Кроме вашей програмы у пользователя еще есть куча других программ. Ради какой-то игры менять системные настройки? я не люблю такие программы. Писать их тоже не хочу. Кроме того, на многих системах, просто не будет прав менять что-то там. Поверьте что таймер можно настроить гораздо точнее чем задержку клавиатуры. ![]()
ну я не телепат. кода не вижу. Таймер походу можно вообще не отключать. Просто при нажатии клавиши заносить код в ячейку. при отжатии заносить ноль. Короче вариантов куча Это сообщение отредактировал(а) volatile - 16.4.2012, 23:21 |
|||
|
||||
KostX |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
Я его и не отключаю. Просто на время зажатия кнопки, таймер сам приостанавливается. Когда я кнопку отпускаю - таймер тикает дальше и все работает замечательно.
Если-бы из этой кучи хоть один нормально работал... . Это сообщение отредактировал(а) KostX - 18.4.2012, 19:36 |
||||
|
|||||
KostX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
bool KeyPressed; int Key_id; - глобальные переменные. Интервал таймера 100мс
|
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
KostX, Из кода что вы привели не ясно почему это происходит. Делаю предположение что билдер что-то там делает. (я не знаток д'Билдера) Могу вам предложить сделать следующее
В Инициализации формы вызовите set_timer (); В закрытии kill_timer (); Это, имхо, должно работать. |
|||
|
||||
KostX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.4.2011 Репутация: нет Всего: нет |
volatile, спасибо огромное! Работает
![]() |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
В играх задержка клавиатуры не влияет по той простой причине что игра хватает нажатия кнопок из DirectInput
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Ampelia913 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.4.2012 Репутация: нет Всего: нет |
Я наверное не там где нужно написала, и я не мужик. Мне просто нужна помощь, ну неужели никто не знает как пропинговать сервер через С++ или Delphi? Знаю что мое предыдущее сообщение вашей темы не касается, но я считаю, что если не KostX то хотя бы кто-нибудь другой должен знать. Народ подумайте, прошу!
Добавлено через 1 минуту и 14 секунд volatile, вы не сможете разобраться? |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
Это точно, создайте топик с соответствующей темой.
![]() Это сообщение отредактировал(а) volatile - 22.4.2012, 17:24 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |