1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Проблема со сворачиванием в Tray

Тема в разделе "Delphi - программирование", создана пользователем misterio, 24 июн 2008.

  1. misterio

    misterio Гость

    Репутация:
    0
    Сообственно весь способ описан тут : http://forum.sources.ru/index.php?showtopic=8557 или в базе данных.

    Но у меня возникла проблема. Програма сама сворачиваеться в трэй, но разворачиваться не хочет никак.
    Вот кусочек, который отвечает за разворот :

    Код:
    procedure TForm1.IconMouse(var Msg:TMessage);
    Var p:tpoint;
    begin
    GetCursorPos(p); // Запоминаем координаты курсора мыши
    Case Msg.LParam OF // Проверяем какая кнопка была нажата
    WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке. В нашем случае это просто активация приложения} 
    Begin 
    Ic(2,Application.Icon); // Удаляем значок из трея
    ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
    ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
    End;
    WM_RBUTTONUP: {Действия, выполняемый по одинарному щелчку правой кнопки мыши}
    Begin
    SetForegroundWindow(Handle); // Восстанавливаем программу в качестве переднего окна
    PopupMenu1.Popup(p.X,p.Y); // Заставляем всплыть тот самый TPopUp о котором я говорил чуть раньше
    PostMessage(Handle,WM_NULL,0,0);
    end;
    End;
    end;
    Сообственно не срабатывает вот это вообще :

    Код:
    WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке. В нашем случае это просто активация приложения} 
    Begin 
    Ic(2,Application.Icon); // Удаляем значок из трея
    ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
    ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
    End;
    А если нажата вторая кнопка на мише, то срабатывает только PopupMenu1...

    Код:
     PopupMenu1.Popup(p.X,p.Y);
    Остальное все вроде игнорируеться. Компилировалось на GodeGear RAD Studio.
     
  2. etc

    etc Гость

    Репутация:
    0
    Докажите.
     
  3. misterio

    misterio Гость

    Репутация:
    0
    Нажимаю F7 и смотрим что делает программа. Это рядки просто пропускаються(такое впечатление), поскольку никаких действий нету! Ни на mouse1 ни на mouse2. А не срабатывает скорее всего потому что в Msg не передаеться парамерт....почему?


    P.S. Не можете ничего подсказать - лучше не пишите!
     
  4. etc

    etc Гость

    Репутация:
    0
    "Бездоказательно, дорогой профессор, бездоказательно!" (с), просто так, по F7, вы туда не попадете .
     
  5. misterio

    misterio Гость

    Репутация:
    0
    Не вижу никаго резона разводить тут флуд и умничать. Я говорю о том, что почему-то не работает оработчики события на нажатия mouse1, mouse2. Не знаю что там с F7, но программа циклически скачет :

    А внутрь не заходит...И проблема в этом. Прошу помочь, если кто-то что- знает по теме.... :(
     
  6. etc

    etc Гость

    Репутация:
    0
    Установите брэкпоинт на строке Ic(2,Application.Icon);. и/или логируйте все что туда приходит, т.е. скидывайте в файл все Msg.LParam и Msg.RParam, потом изучайте.
    Но что то есть опасения, что вы чего-то не договариваете, т.к. код предтавленный по ссылке у меня работает, правда D7, но врядли это с этим связано.


    Что такое "mouse1, mouse2"?
     
  7. misterio

    misterio Гость

    Репутация:
    0
    Ну нажатия на кнопки мыши!
    Да...какой мне резон что-то недоговарить, если не получаеться. Я ж просто взял и скопировал код на form, ничего своего еще не успел добавить. Ладно буду пробовать! :(


    Добавлено через 10 мин.


    Странно...все переделал с нуля - работает....оч. интересно!
     
  8. etc

    etc Гость

    Репутация:
    0
    Очевидно Delphi 7 :(
    Я тоже скопировал, и работает. Да и яж говорю, что-то странно, что WM_RBUTTONUP работает, а WM_LBUTTONUP нет, мистика какая-то О_о
     
Загрузка...

Поделиться этой страницей