Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.15;
Скачать: CL | DM;

Вниз

Как глобально, во всей програме отключить хинты?   Найти похожие ветки 

 
Trible   (2006-11-26 23:08) [0]

Привет! Как глобально, во всей програме отключить хинты?
что то типа KOLProject1.showhint:=false.
Использую kolmhTooltip.pas с директивой.


 
Vladimir Kladov   (2006-11-27 15:17) [1]

Только через сообщения Applet.OnMessage, смотрите, какие TTM_ приходят, и гасите.


 
Trible   (2006-11-27 16:08) [2]

Спасибо!


 
Trible   (2006-11-27 18:33) [3]

Или я что то недопонял, но я большинство сообщений перепробовал в Applet.OnMessage. TTM_ACTIVATE
TTM_ADDTOOL
TTM_DELTOOL
TTM_ENUMTOOLS
TTM_GETCURRENTTOOL
TTM_GETTEXT
TTM_GETTOOLCOUNT
TTM_GETTOOLINFO
TTM_HITTEST
TTM_NEWTOOLRECT
TTM_RELAYEVENT
TTM_SETDELAYTIME
TTM_SETTOOLINFO
TTM_UPDATETIPTEXT
TTM_WINDOWFROMPOINT

Ни одно не выполняетсья.... При показе хинта..


 
Trible   (2006-11-27 18:34) [4]

Ну не все из показанных, а те кот. по смыслу подходят.. эт я скопировал из msdn


 
Vladimir Kladov   (2006-11-27 20:51) [5]

тут какая-то ерунда: если на форме есть аплет, то хинты вообще не показываются. Надо посмотреть, в чем дело.


 
Vladimir Kladov   (2006-11-27 21:03) [6]

с этим наполовину разобрался: у меня в проекте был включен UNICODE_CTRLS, как только убрал, стали появляться.

И вот что заметил: окно тултипа создается напрямую вызовом CreateWindowEx. Попробуйте сделать свой Run (просто скопировать из KOL в dpr) и в нем поставить обработчик вроде такого:

peekmessage...

if disabletooltips and (msg.message >= DWORD(TTM_FIRST)) and
 (msg.message <= DWORD(TTM_LAST)) then // ничего не делать
else
begin
  transaltemessage...
  dispatchmessage ...
end;


 
Vladimir Kladov   (2006-11-27 21:13) [7]

нет, так что-то не получилось тоже. Все равно показываются.


 
Trible   (2006-11-28 22:48) [8]

Может лучше все - таки самому хинты создавать?


 
Trible   (2006-11-28 22:50) [9]

Но так больше геморроя...


 
Vladimir Kladov   (2006-11-29 15:20) [10]

все можно сделать, любое сообщение обязаетльно пройдет через Applet.OnMessage, если в программе есть Applet. Гасить нужно обычный показ окна, относящийся к конам класса тултипа.


 
Trible   (2006-12-03 16:36) [11]


> любое сообщение обязаетльно пройдет через Applet.OnMessage


Перехватываю в Applet.OnMessage WM_Activate. Смотрю стиль (и расширеный) каждого - нету ничего.


 
Trible   (2006-12-03 16:48) [12]

Пробовал и WM_Create перехватывать и смотрел класс окна. Нету тултипа .  А как по WM_SHOWWINDOW определить незнаю даже к чему прицепиться. что порекомендуете?


 
Vladimir Kladov   (2006-12-03 19:23) [13]

function TForm1.KOLApplet1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
var NE: PNMHdr;
begin
 Result := FALSE;
 if (Msg.message = WM_NOTIFY) then
 begin
   NE := Pointer( Msg.lParam );
   if NE.code = {TTN_SHOW} 0-520-1 then
   begin
     SetWindowPos( NE.hwndFrom, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
       or SWP_NOZORDER or SWP_NOACTIVATE );
     Result := TRUE;
   end;
 end;
end;


 
Stan   (2006-12-04 16:35) [14]

Спасибо вам Владимир на потраченное на меня время!
Удачного дня! Когда нибудь пригожусь :)


 
Trible   (2006-12-04 16:36) [15]

Trible = Stan :)


 
Trible   (2006-12-04 17:51) [16]

Более быстрый вариант:

case Msg.message of

WM_NOTIFY: begin

              if PNMHdr(Msg.lParam).code = {TTN_SHOW} 0-520-1 then
              begin
                SetWindowPos( PNMHdr(Msg.lParam).hwndFrom, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
                  or SWP_NOZORDER or SWP_NOACTIVATE );
                Result := TRUE;
              end;
            end;
end; // of case


 
Vladimir Kladov   (2006-12-04 19:24) [17]

ничуть. Посмотрите код, который генерит Delphi. Он не тупой. Создание дополнителньой переменной ничего не стоит, если есть возможность использовать для нее регистр. Смотреть с включенной оптимизацией.


 
Galkov ©   (2006-12-05 09:07) [18]

Ну может коллега FPC любит :)))



Страницы: 1 вся ветка

Текущий архив: 2007.07.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
2-1182073927
..::KraN::..
2007-06-17 13:52
2007.07.15
String to ANSI


15-1180860950
SkySpeed
2007-06-03 12:55
2007.07.15
Подскажите программу для создания справки (*.hlp) (для Delphi)


15-1181886826
TCrash
2007-06-15 09:53
2007.07.15
IBexpert


15-1181846635
ММК
2007-06-14 22:43
2007.07.15
Symbian


1-1178875778
Ромка
2007-05-11 13:29
2007.07.15
Сохранение обьектов классов в файловый поток