Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



Клавиатура.

Для начала маленький код для определения нажатия клавиши 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
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.Width := Screen.Width;
    bmp.Height := Screen.Height;
    BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
    GetDC(GetDesktopWindow), 0, 0, SRCCopy);
    Image1.Picture.Bitmap:=bmp;
  finally
    bmp.Free;
  end;
end;

Проверка свечения диодов на клавиатуре:

procedure TForm1.Button1Click(Sender: TObject);
begin
// x – integer. X = 145 = Scroll Lock; X = 144 = Num Lock; X = 20 = Caps Lock
  if GetKeyState(X) and 1 = 0 then
    Form1.Caption := 'Не горит'
  else
    Form1.Caption := 'Горит';
end;

Эмуляция нажатия клавиш например для Memo1:

SendMessage(Memo1.Handle, WM_CHAR, Ord('A'), 0);

И на последок коды виртуальных клавиш:

vk_LButton   = $01;
vk_RButton   = $02;
vk_Cancel    = $03;
vk_MButton   = $04;   { генерятся только системой вместе с L & RBUTTON }
vk_Back      = $08;
vk_Tab       = $09;
vk_Clear     = $0C;
vk_Return    = $0D;
vk_Shift     = $10;
vk_Control   = $11;
vk_Menu      = $12;
vk_Pause     = $13;
vk_Capital   = $14;
vk_Escape    = $1B;
vk_Space     = $20;
vk_Prior     = $21;
vk_Next      = $22;

vk_End       = $23;
vk_Home      = $24;
vk_Left      = $25;
vk_Up        = $26;
vk_Right     = $27;
vk_Down      = $28;
vk_Select    = $29;
vk_Print     = $2A;
vk_Execute   = $2B;
vk_SnapShot  = $2C;
{ vk_Copy      = $2C не используется клавиатурой }

vk_Insert    = $2D;
vk_Delete    = $2E;
vk_Help      = $2F;
{ vk_A - vk_Z такие же, как и их ASCII-эквиваленты: 'A' - 'Z' }
{ vk_0 - vk_9 такие же, как и их ASCII-эквиваленты: '0' - '9' }

vk_NumPad0   = $60;
vk_NumPad1   = $61;
vk_NumPad2   = $62;
vk_NumPad3   = $63;
vk_NumPad4   = $64;
vk_NumPad5   = $65;
vk_NumPad6   = $66;
vk_NumPad7   = $67;
vk_NumPad8   = $68;
vk_NumPad9   = $69;
vk_Multiply  = $6A;
vk_Add       = $6B;
vk_Separator = $6C;
vk_Subtract  = $6D;
vk_Decimal   = $6E;
vk_Divide    = $6F;
vk_F1        = $70;
vk_F2        = $71;
vk_F3        = $72;
vk_F4        = $73;
vk_F5        = $74;

vk_F6        = $75;
vk_F7        = $76;
vk_F8        = $77;
vk_F9        = $78;
vk_F10       = $79;
vk_F11       = $7A;
vk_F12       = $7B;
vk_F13       = $7C;
vk_F14       = $7D;
vk_F15       = $7E;
vk_F16       = $7F;
vk_F17       = $80;
vk_F18       = $81;
vk_F19       = $82;
vk_F20       = $83;
vk_F21       = $84;
vk_F22       = $85;
vk_F23       = $86;
vk_F24       = $87;
vk_NumLock   = $90;
vk_Scroll    = $91;