Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 08:01 13.05.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Delphi и асемблер
Автор _FX_ ()
Публикувано28.01.08 11:42  



Здравейте, имам проблем със следния код мисля, че проблема се явява в използването на асемблер, пробвам го на Delphi 5. Някой може ли да ми помогне


{ globalni promenlivi}
var
Key, OldKey: Byte;
LShiftUp, RShiftUp: Boolean;
St: string;

{tablici sus string-ovete za kopchetata}
const
Low: array[1..88] of string = (
' Esc ','1','2','3','4','5','6','7','8','9','0','-','=',' BkSp ',
' Tab ','q','w','e','r','t','y','u','i','o','p','[',']',
' Enter ',' Ctrl ','a','s','d','f','g','h','j','k','l',';','''','`',
' LShift+ ','\','z','x','c','v','b','n','m',',','.','/',' RShift+ ',
' Pad* ',' Alt ',' Space ',' CAPS ',
' F1 ',' F2 ',' F3 ',' F4 ',' F5 ',' F6 ',' F7 ',' F8 ',' F9 ',' F10 ',
' NUM ',' SCROLL ',' Home ',' Up ',' PgUp ',' Pad- ',' Left ',' *5* ',' Right ',
' Pad+ ',' End ',' Down ',' PgDown ',' Ins ',
' Del ',' -LShift ',' -RShift ',' Unknown ',' F11 ',' F12 ');

Hi: array[1..88] of string = (
' Esc ','!','@','#','$','%','^','&','*','(',')','_','+',' BkSp ',
' Tab ','Q','W','E','R','T','Y','U','I','O','P','{','}',
' Enter ',' Ctrl ','A','S','D','F','G','H','J','K','L',':','"','~',
' LShift+ ','|','Z','X','C','V','B','N','M','<','>','?',' RShift+ ',
' Pad* ',' Alt ',' Space ',' CAPS ',
' F1 ',' F2 ',' F3 ',' F4 ',' F5 ',' F6 ',' F7',' F8',' F9 ',' F10 ',
' NUM ',' SCROLL ',' Home ',' Up ',' PgUp ',' Pad- ',' Left ',' *5* ',' Right ',
' Pad+ ',' End ',' Down ',' PgDown ',' Ins ',
' Del ',' -LShift ',' -RShift ',' Unknown ',' F11 ',' F12 ');
{tova tuk e osnovniq cikul deto prihvashta novo kopche}
procedure SpyKey;
begin
asm
in al, 60h {kopcheto vuv al}
mov Key, al {al vuv Key}
end;

{malko obrabotka na Key, za da se vidi sustoqnieto na shift}
if Key = 170 then
begin
Key := 84;
LShiftUp := true;
end;
if Key = 182 then
begin
Key := 85;
RShiftUp := true;
end;
if Key = 42 then LShiftUp := false;
if Key = 54 then RShiftUp := false;
if Key <> OldKey then
{ako kopcheto e razlichno ot staroto togava...}
begin
OldKey:=Key; {novoto kopche vuv Oldkey}
if Key<=88 then {ako e natisnato kopche}
begin
if LShiftUp and RShiftUp then
St:=Low[Key] {nqma shift => vzemi ot tablicata low}
else St:=Hi[Key]; {ima shift => vzemi ot tablicata hi}
end
else if Key - 128 <= 88 then {ako e otpusnato kopche}
begin
if LShiftUp and RShiftUp then
St:=Low[Key - 128] {nqma => shift vzemi ot tablicata low}
else St:=Hi[Key - 128]; {ima => shift vzemi ot tablicata hi}
end;
end;
end;



Цялата тема
ТемаАвторПубликувано
* Delphi и асемблер _FX_   28.01.08 11:42
. * А проблемът ти е?... andrew_nikoloff   28.01.08 15:20
. * Re: А проблемът ти е?... _FX_   28.01.08 22:53
. * Re: А проблемът ти е?... andrew_nikoloff   29.01.08 14:30
. * Re: А проблемът ти е?... Formal   05.02.08 11:57
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.