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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 17:06   #1
Виталий Тарадаев
Новичок
Джуниор
 
Регистрация: 31.07.2013
Сообщений: 1
По умолчанию Для тех кто хорошо разбирается в модулях

Вот я выложил модуль от PascalABC, Кто может переделайте его пожалуйста на модуль для PascalABC.NET.
Код:
unit Ukeyb;
 
interface
uses utils;
 
const
    esc_key=27;  tab_key=9;   space_key=32; enter_key=13;
 
    up_key=38;   down_key=40; left_key=37;  right_key=39;
 
    ins_key=45;  del_key=46;  home_key=36;  end_key=35;
    pgup_key=33; pgdn_key=34;
 
    caps_key=20;
    Lctrl_key=162;  Rctrl_key=163;
    Lalt_key=164;   Ralt_key=165;
    Lshift_key=160; Rshift_key=161;
 
    F1_key=112;  F2_key=113;  F3_key=114;
    F4_key=115;  F5_key=116;  F6_key=117;
    F7_key=118;  F8_key=119;  F9_key=120;
    F10_key=121; F11_key=122; F12_key=123;
 
    A_key=65; B_key=66; C_key=67;
    D_key=68; E_key=69; F_key=70;
    G_key=71; H_key=72; I_key=73;
    J_key=74; K_key=75; L_key=76;
    M_key=77; N_key=78; O_key=79;
    P_key=80; Q_key=81; R_key=82;
    S_key=83; T_key=84; U_key=85;
    V_key=86; W_key=87; X_key=88;
    Y_key=89; Z_key=90;
 
//Нажата ли клавиша, заданная параметром?
//(При вызове удобно использовать перечисленные
//выше константы)
function ispressed(key:integer):boolean;
 
//Нажата ли хоть какая-нибудь клавиша?
function is_any_key:boolean;
 
//Куда нажаты клавиши-стрелки? (0-не нажаты,
//1-8 - от вертикали по часовой стрелке)
function arrow_dir:byte;
 
//какая кнопка мыши нажата?
//1-левая, 2-правая, 4-колёсико, 0-не нажата
function mousebutton:integer;
 
implementation
 
 
function ispressed(key:integer):boolean;
var
   kb:TKeyboardState;
begin
   GetKeyboardState(kb);
   ispressed:=(kb[key]=128)or(kb[key]=129);
end;
 
function is_any_key:boolean;
var
   //kb:TKeyboardState;
   i:integer;
begin
   GetKeyboardState(kb);
   is_any_key:=false;
   for i:=5 to 255 do
      if (kb[i]=128)or(kb[i]=129) then
      begin
          is_any_key:=true;
          exit;
      end;
end;
 
function mousebutton:integer;
var
  // kb:TKeyboardState;
   i:integer;
begin
   GetKeyboardState(kb);
   if (kb[1]=128)or(kb[1]=129) then
      mousebutton:=1
   else
   if (kb[2]=128)or(kb[2]=129) then
      mousebutton:=2
   else
   if (kb[4]=128)or(kb[4]=129) then
      mousebutton:=4
   else
      mousebutton:=0;
end;
 
function arrow_dir:byte;
var
   kb:TKeyboardState;
   ad:byte;
begin
   GetKeyboardState(kb);
   ad:=0;
 
   if (kb[Up_key]=128)or(kb[Up_key]=129) then
      ad:=1
   else
      if (kb[Down_key]=128)or(kb[Down_key]=129) then
         ad:=5;
         
   if (kb[right_key]=128)or(kb[right_key]=129) then
      case ad of
          0: ad:=3;
          1: ad:=2;
          5: ad:=4;
      end
   else
      if (kb[Left_key]=128)or(kb[Left_key]=129) then
           case ad of
              0: ad:=7;
              1: ad:=8;
              5: ad:=6;
           end;
   arrow_dir:=ad;
end;
 
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 31.07.2013 в 22:32.
Виталий Тарадаев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто хорошо разбирается в блокноте(notepad) ололошенько HTML и CSS 3 14.01.2013 20:19
Кто хорошо разбирается в блокноте(notepad) ололошенько Софт 1 14.01.2013 07:18
Очень надо написать программу, задачи не сложные для тех кто разбирается (не для меня увы) Artm3 Паскаль, Turbo Pascal, PascalABC.NET 2 08.03.2011 22:54
есть кто хорошо разбирается в VBA? balbesstudent Microsoft Office Excel 0 28.12.2010 23:32