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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2010, 19:10   #11
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Ну же народ. Неужто никто не знает в чем проблема?
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 27.07.2010, 20:05   #12
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

метод класса и регулярная процедура имеют разное описание и НЕ МОГУТ быть взаимозаменяемы без дополнительных ухищрений

в API можно использовать только регулярные процедуры(функции) (НЕ МЕТОДЫ Классов)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 27.07.2010, 20:47   #13
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Ну наконец-то хоть один вразумительный ответ. Спасибо что избавили меня от плясок с бубном вокруг исходников...
На данный момент извращаюсь таким образом:
Код:
  TSelectControl = class(TComponent)
  private
    FHotKey:boolean;

    procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
  protected
  public

  published
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
  end;
...
procedure TSelectControl.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  case msg.message of
  WM_KEYDOWN: begin
                  case msg.wParam of
                  VK_UP: begin
                          if (FhotKey) then
                          begin
                          ShowMessage('CTRL+UP');
                          end;
                         end;
                  VK_DOWN: begin
                            if (FhotKey) then
                            begin
                              ShowMessage('CTRL+DOWN');
                            end;
                           end;
                  VK_LEFT: begin
                            if (FhotKey) then
                            begin
                              ShowMessage('CTRL+LEFT');
                            end;
                           end;
                  VK_RIGHT: begin
                             if (FhotKey) then
                               begin
                                 ShowMessage('CTRL+RIGHT');
                               end;
                            end;
                  VK_CONTROL: begin
                                FhotKey:=true;
                              end;
                  end;
              end;
  WM_KEYUP: begin
                      if (msg.wParam = VK_CONTROL) then FhotKey:=false;
                   end;
  end;
    Handled := False;
end;

constructor TSelectControl.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  Application.OnMessage:=AppMessage;
  FHotKey:=false;
end;

destructor TSelectControl.Destroy;
begin
  inherited Destroy;
end;
Спасибо этой статье...
Скажите: этот способ нормальный, или мне дальше что-то изобретать? А то мне как-то страшновато переопределять Application.OnMessage
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хуки, проблема взятия адреса qwerc1 Win Api 2 16.06.2010 00:33
Хуки в Windows JeyKip Win Api 11 09.05.2010 00:33
Программа, использующая хуки anGeee Win Api 1 11.12.2009 20:59
ListView и хуки 7KByte Win Api 0 10.07.2009 22:21
Глобальные хуки Zeraim Win Api 2 24.05.2008 16:00