Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 17:07   #1
veen
 
Регистрация: 28.12.2009
Сообщений: 4
Хорошо Повтор символа при зажатии клавиши клавиатуры

Как сделать так, чтобы при зажатии например буквы "А" на клавиатуре она не повторялась типо "ААААААА... (и пока не отпустишь)", а просто один раз символ отрисовывался и всё? Нужно для управления программой с клавиатуры - при нажатии на клавишу "+" выделяется следующий item ( если + зажать то он выделяет до самого низа списка).

Поиск юзал - ничего не нашел
veen вне форума Ответить с цитированием
Старый 02.01.2011, 19:05   #2
MoBLer
Пользователь
 
Аватар для MoBLer
 
Регистрация: 30.12.2010
Сообщений: 91
Счастье

Не знаю как в программе но можно в свойствах клавиатуры настроить
Я тебе помог, добавь отзыв)))))
Статьи по программированию

Последний раз редактировалось MoBLer; 02.01.2011 в 19:13.
MoBLer вне форума Ответить с цитированием
Старый 02.01.2011, 20:06   #3
veen
 
Регистрация: 28.12.2009
Сообщений: 4
По умолчанию

Нужно именно в программе
veen вне форума Ответить с цитированием
Старый 02.01.2011, 20:16   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тогда в Application.OnMessage ловить нажатие и отпускание клавиши
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.01.2011, 20:49   #5
veen
 
Регистрация: 28.12.2009
Сообщений: 4
По умолчанию

Можно по-подробней, я очень новичек
veen вне форума Ответить с цитированием
Старый 02.01.2011, 21:47   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
var
  Flag: Byte;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Flag := 0;
end;

procedure TForm1.Edit1KeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case Flag of
    0: Flag := 1;
    else Flag := 2;
  end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Flag := 0;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Flag = 2 then Key := #0;
end;
Sibedir вне форума Ответить с цитированием
Старый 09.01.2011, 14:48   #7
veen
 
Регистрация: 28.12.2009
Сообщений: 4
По умолчанию

А если не с буквами, если при нажатии клавиши срабатывает какая то функция, то как сделать чтобы она сработала один раз, а не повторялась пока клавишу не отпустят?
veen вне форума Ответить с цитированием
Старый 09.01.2011, 15:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как сделать чтобы она сработала один раз, а не повторялась пока клавишу не отпустят?
Код:
  case Flag of
    0: begin Flag := 1; MyFunc(); end;
MyFunc(); - это твоя функция
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить код клавиши клавиатуры. prw07 Общие вопросы Delphi 2 17.09.2010 11:04
Требование к воспроизведению звука по нажатию клавиши клавиатуры в Bass.dll Fluffy123 Мультимедиа в Delphi 8 15.05.2010 21:48
Ловушка клавиатуры - при нажимании на клавиши <Ctrl>+ M выводилась информация Alina90 Общие вопросы C/C++ 0 26.12.2009 23:27
Измерение времени нажатия клавиши клавиатуры buka_14 Помощь студентам 6 13.04.2009 13:18
Переопредиление клавиши клавиатуры. Amatory Win Api 3 14.12.2008 16:34