Конференция "KOL" » Глюк TrayIcon в системе с альтернативной графической оболочкой [Delphi, Windows]
 
  • Ya (04.02.14 16:52) [0]
    Система D7, Win XP, вместо стандартной графической облолчки Explorer установлен Aston Shell.

    Если создать пустой проект и добавить компонент TrayIcon (KOLTrayIcon), вставив в него любую икону, то при клике левой кнопкой мыши по иконе в трее программа вылетает c ошибкой, а в среде Дельфи с Runtime error 216 at 00403C5E.

    С обработчиком OnMouse то же самое.

    В этом коде отрабатывается только первая сторока showmessage('Test'); если поставить первой строкой beep(1000,100);, то только она будет отрабатываться:

    procedure TForm1.TrayIcon1Mouse(Sender: PObj; Message: Word);
    begin
     if (Message=513) then
     begin
       showmessage('Test');
       beep(1000,100);
     end;
     if (Message=516) then beep(500,100);
    end;



    Версия КОЛ 3.210, но и в ранних версиях то же самое наблюдалось. В Виндовс с родной оболочкой Explorer всё работает нормально.
  • Vladimir Kladov © (08.02.14 12:39) [1]
    Попробуйте в KOL.pas такое изменение (при включенной PAS_VERSION):

    function WndProcTray( Control: PControl; var Msg: TMsg; var Rslt: Integer ) : Boolean;
    var Self_: PTrayIcon;
       I : Integer;
    begin
     Result := False;
     case Msg.message of
     CM_TRAYICON:
       begin
         if  Msg.lParam <= WM_MOUSELAST then
         begin
             Self_ := Pointer( Msg.wParam );
             if  Assigned( Self_.FOnMouse ) then
                 Self_.FOnMouse( @Self_, Msg.lParam );
         end;
         Rslt := 0;
         Result := True;
       end;
     WM_CLOSE:
     ...



    Если устроит, включим в KOL. Не знаю, что там за мусор на вход приходит вместо сообщений от мыши. Правильнее было бы поспрошать авторов этого ASTON'а.
  • Ya (08.02.14 16:30) [2]
    >>Если устроит, включим в KOL.

    Большое спасибо, так всё работает нормально.
 
Конференция "KOL" » Глюк TrayIcon в системе с альтернативной графической оболочкой [Delphi, Windows]
Есть новые Нет новых   [118666   +35][b:0][p:0.001]