Code:

function GettingKeybType: string

var

Flag:   integer;

begin

Flag:=0;

Case GetKeyboardType(Flag) of

   1:  Result:='IBM PC/XT or compatible (83-key) keyboard';

   2:  Result:='Olivetti "ICO" (102-key) keyboard';

   3:  Result:='IBM PC/AT (84-key) or similar keyboard';

   4:  Result:='IBM enhanced (101- or 102-key) keyboard';

   5:  Result:='Nokia 1050 and similar keyboards';

   6:  Result:='Nokia 9140 and similar keyboards';

   7:  Result:='Japanese keyboard';

end;

end;

 

Приведённая здесь функция делает копию изображения экрана и сохраняет её в буфере обмена (Clipboard). Так же необходимо включить в Ваш проект файл ClipBrd.pas.

 

 

Code:

function InsertOn: Boolean;

begin

{©Drkb v.3}

 

Result:=LowOrderBitSet(GetKeyState(VK_INSERT));

end;

 

Использование клавиш для управления компонентами

Автор: Robert Wittig

 Так, если у меня есть своего рода кнопка (check, radio, speed и т.п.), то почему я не могу с помощью клавиш курсора управлять ею?

 

Все потомки TComponent могут посылать сообщения CM_MOUSEENTER и CM_MOUSELEAVE во время вхождения и покидания курсора мыши области компонента. Если вам необходимо, чтобы ваши компоненты обладали реакцией на эти события, необходио написать для них соответствующие обработчики.

 

Code:

procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean);

var

  ccode: Word;

begin

  case Msg.Message of

    WM_KEYDOWN, WM_KEYUP:

      begin

        if (GetKeyState(VK_NUMLOCK) >= 0{NumLock not active} and

          ((Msg.lParam and $1000000) = 0{not a gray key} then

        begin

          ccode := 0;

          case Msg.wParam of

            VK_HOME: ccode   := VK_NUMPAD7;

            VK_UP: ccode     := VK_NUMPAD8;

            VK_PRIOR: ccode  := VK_NUMPAD9;

            VK_LEFT: ccode   := VK_NUMPAD4;

            VK_CLEAR: ccode  := VK_NUMPAD5;

            VK_RIGHT: ccode  := VK_NUMPAD6;

            VK_END: ccode    := VK_NUMPAD1;

            VK_DOWN: ccode   := VK_NUMPAD2;

            VK_NEXT: ccode   := VK_NUMPAD3;

            VK_INSERT: ccode := VK_NUMPAD0;

            VK_DELETE: ccode := VK_DECIMAL;

          end; {Case}

          if ccode <> 0 then

            Msg.wParam := ccode;

        end; {If}

      end; {Case Msg.Message}

  end; {Case}

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  Application.OnMessage := AppOnMessage;

end;

 

В этом примере курсор мыши сам встает на кнопку и нажимает на нее.

 

Пример демонстрирует установку горячей клавиши CTRL-F7:

Нам потребуется универсальная функция, которую можно будет применять для различных визуальных контролов.

 Вот пример вызова нашей функции:

 

Перевод одноимённой статьи с сайта delphi.about.com )

Начиная с самого рассвета компьютерной промышленности, клавиатура была первичным устройством ввода информации, и вероятнее всего сохранит свою позицию ещё долгое время.

События клавиатуры, наряду с событиями мыши, являются основными элементами взаимодействия пользователя с программой. В данной статье пойдёт речь о трёх событиях, которые позволяют отлавливать нажатия клавиш в приложении Delphi: OnKeyDown, OnKeyUp и OnKeyPress.

 

Code:

var hintWnd: THintWindow;

 

procedure TForm1.ActivateHintNOW( x,y: Integer);

var rect: TRect;

begin

HintTxt := 'qq';

if hintTxt <> '' then

begin

   rect := hintWnd.CalcHintRect( Screen.Width, hinttxt, nil);

   rect.Left := rect.Left + x;

   rect.Right := rect.Right + x;

   rect.Top := rect.Top + y;

   rect.Bottom := rect.Bottom + y;

   hintWnd.ActivateHint( rect, hinttxt);

end;

end;

 

 

Замечание: Не забудьте каждый раз создавать hintWnd:

    hintwnd:= THintWindow.create(self);

 

а затем освобождать его

      hintwnd.releasehandle;