Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Паскаль] как изменить коды нажатия клавиш?


Автор: TESLA 25.2.2008, 16:48
Код

Maxpunkt,Maxpunkt1:integer;var N: integer; Menu:Tarrstr; Menu1:Tarrstr1;var active:integer);
var ch1: char;
    active1:integer;
    MasNachZ:TarrZ;
    MasNachR:TarrR;
    meter:integer;
begin
   ActivePunktMenu(Menu,active,Maxpunkt);
   ch:=readkey;
   case ch of
     #072:begin
         If active=1
            then active:=Maxpunkt
            else active:=active-1;
         end;
     #080:begin
         If active=Maxpunkt
            then active:=1
            else active:=active+1;
            end;
     #13:begin
            active1:=1;
         repeat
            ActivePunktMenu(Menu,active,Maxpunkt);
            ActivePunktMenu1(Menu1,active,active1,Maxpunkt1);
            ch1:=Readkey;
            case ch1 of
               #072:begin
               If active1=1
                  then active1:=Maxpunkt1
                  else active1:=active1-1;
               end;
               #080:begin
               If active1=Maxpunkt1
                 then active1:=1
                 else active1:=active1+1;
               end;
               #13:begin
               If active=1
                 then begin
                    AZ:=MasNachZ;
                    case active1 of
                       1: InpUserZ(AZ,MasNachZ,N);
                       2: InpZRandom(AZ,MasNachZ,N);
                       3: begin
                             SortInsertZ(AZ,N,meter);
                             Vivod(AZ,MasNachZ,N,meter);
                             end;
                       4: begin
                             SortCaseZ(AZ, N,meter);
                             Vivod(AZ,MasNachZ,N,meter);
                             end;
                       5: begin
                             SortRekQuickZ(aZ, N,meter);
                             Vivod(AZ,MasNachZ,N,meter);
                             end;
                       6: begin
                             NonRecQuickSortZ(aZ, N,meter);
                             Vivod(AZ,MasNachZ,N,meter);
                             end;
                       7: begin
                             ShellSortZ(aZ, n,meter);
                             Vivod(AZ,MasNachZ,N,meter);
                             end;
                          end;
                       end
                 else begin
                    AR:=MasNachR;
                    case active1 of
                        1: InpUserR(AR,MasNachR,N);
                        2: InpRRandom(AR,MasNachR,N);
                        3: begin
                              SortInsertR(AR,N,meter);
                              Vivod1(AR,MasNachR,N,meter);
                              end;
                        4: begin
                              SortCaseR(AR, N,meter);
                              Vivod1(AR,MasNachR,N,meter);
                              end;
                        5: begin
                               SortRekQuickR(aR, N,meter);
                               Vivod1(AR,MasNachR,N,meter);
                               end;
                        6: begin
                               NonRecQuickSortR(aR, N,meter);
                               Vivod1(AR,MasNachR,N,meter);
                               end;
                        7: begin
                               ShellSortR(aR, n,meter);
                               Vivod1(AR,MasNachR,N,meter);
                               end;
                           end;
                        end;
                    end;
              end;
         until ch1=#27;
       end;
    end;
   end;


Как вот в этой процедурке изменить, чтобы при нажатии на shift+p и shift+q ничего не происходило, а выбор пункта меню происходил только при нажатии стрелок?

Если надо, скину полностью програму, она большая, сюда выкладывать не буду

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)