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

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

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2015, 04:00   #1
Pblog
Бот
Администратор
 
Регистрация: 27.05.2007
Сообщений: 182
По умолчанию статья - КЛАВИАТУРА

КЛАВИАТУРА

Для начала маленький код для определения нажатия клавиши Print Screen:

Код:
 private procedure AppIdle(Sender: TObject; var Done: Boolean); 
 procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
  begin
   if GetAsyncKeyState(VK_SNAPSHOT) <> 0 then
     Form1.Caption := ‘PrintScreen!’; Done := True;
  end;

  procedure TForm1.FormCreate(Sender: TObject);
   begin
    Application.OnIdle := AppIdle;
   end;
А теперь программный аналог Print Screen’а:

procedure TForm1.Button1Click(Sender: TObject);

var [...]

Последний раз редактировалось Вадим Мошев; 10.11.2015 в 13:49.
Pblog вне форума Ответить с цитированием
Старый 09.11.2015, 12:08   #2
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Спасибо !
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 09.11.2015, 12:27   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Спасибо !
Pblog это робот. Спасибо говорите админу форума или тому кто организовал этот процесс
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.11.2015, 13:02   #4
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Именно так. Спасибо робот. Спасибо Алар. Спасибо тому, кто организовал этот процесс. Сам бы эту статью не нашёл. А так на глаза попалась... Спасибо.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 10.11.2015, 19:25   #5
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Проверка свечения диодов на клавиатуре не работает.
Работает если:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
X: integer;
begin
   // x – integer. X = 145 = Scroll Lock; X = 144 = Num Lock; X = 20 = Caps Lock
X := 20; //инициализируем переменную на определение нужной кнопки
if GetKeyState(X) and 1 = 0 then
Form1.Caption := 'Не горит'  //исправлены верхние штуковины-кавычки  " ' "
else
Form1.Caption := 'Горит';
end;
Коды виртуальных клавиш не заработали, наверно только у меня:
Код:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
   SendMessage(Memo1.Handle,WM_CHAR,Ord('A'),0);
end;
Сообщение:
Debugger Exception Notification
---------
Project Project1.exe raised exception class EStackOverflow with message 'Stack overflow'. Process stopped. Use Step or Run to continue.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 10.11.2015, 19:32   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

WM_CHAR посылает Memo1 символ. Коль стек переполняется, значит обработка WM_CHAR вызывает срабатывание OnKeyPress и так по кругу. Рекурсия, она такая
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.10.2017, 20:53   #7
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Сообщений: 109
По умолчанию

Ещё свойство KeyPreview нужно выключить.
dummy_user вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ и клавиатура Павел Буров Помощь студентам 3 24.03.2015 17:57
Клавиатура Garmon Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 02.10.2012 09:14
Клавиатура 0creator0 Microsoft Office Word 6 02.10.2011 19:14
клавиатура kaljan775 Общие вопросы C/C++ 2 23.11.2010 01:48
Клавиатура zumm Паскаль, Turbo Pascal, PascalABC.NET 12 27.06.2010 11:16