Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.045 c
4-1170757640
Humorist
2007-02-06 13:27
2007.07.15
Работа с процессами и окнами на другом компьютере


4-1170575289
AlexeyMir
2007-02-04 10:48
2007.07.15
Как заблокировать нажатие кнопки LWin на клавиатуре


15-1181897483
Kolan
2007-06-15 12:51
2007.07.15
Программа для проверки грамматики в коде.


15-1181944338
Kostafey
2007-06-16 01:52
2007.07.15
С днем рождения ! 16 июня


2-1181915779
XeON
2007-06-15 17:56
2007.07.15
Имена файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский