|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | ||||
| 
 | ||||
|  TrackBar и хинт от OS Для того чтобы при таскании ползунка TrackBar-а показывался хинт, нужно установить дополнительный флаг стиля окна - TBS_TOOLTIPS. В Дельфи 2009 это уже реализовано, а в 7-ке ещё не было. Пытаюсь выставить этот флаг, но хинт не появляется, сравнивал исходные коды реализации TrackBar-ов, существенной разницы не нашёл. Может кто-нибудь сталкивался с этим. Код: 
 | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Можно без всяких флагов хинт показать через Mouse.CursorPos, главное чтоб ShowHint у трекбара был в true Код: 
 Последний раз редактировалось Alegun, 12.07.2013 в 19:07. | 
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   Можно, но это несколько не тот хинт что нужен. Нужен отдаваемый OS, стандартный используется по своему прямому назначению и не хочется их смешивать. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   А что ОС отдаёт, просветите пжлст - вот этого-то и не понял | 
| 
			 
			#5  
			
			
			
			
		 | ||||
| 
 | ||||
|   То что ты предлагаешь, показать позицию курсора. Я так делал лет 10 назад, когда не знал о возможности OS, но то делалось на WinAPI. | 
| 
			 
			#6  
			
			
			
			
		 | ||||
| 
 | ||||
|   О, я понял в чём дело - нет объявления TBS_TOOLTIPS в Style TrackBar, надо немного подправить ComCtrls.pas, как я делал в процедуре TTrackBar.CreateParams (строка 10030) дописал к Код: 
  | 
| 
			 
			#7  
			
			
			
			
		 | ||||
| 
 | ||||
|   Я переопределил класс, смотри приведённый код выше, "генофонд" править не совсем правильно. | 
| 
			 
			#8  
			
			
			
			
		 | ||||
| 
 | ||||
|   А я "руками" подправил и оно работает. Проверил. (с генами согласен, но что тут поделать, лучше правануть :-) | 
| 
			 
			#9  
			
			
			
			
		 | ||||
| 
 | ||||
|   Плюнул на SetWindowLong, перехватил CreateParams и изменил стиль класса в нём - так заработало. | 
| 
			 
			#10  
			
			
			
			
		 | ||||
| 
 | ||||
|   Alegun, эта хрень в винды, если мне не изменяет мой склероз, с "плюсом" пришла, видимо поэтому заглушка. | 
| 
			 
			#11  
			
			
			
			
		 | ||||
| 
 | ||||
|   Получается, что это глюк 7 Дельфи. Помимо TBS_TOOLTIPS у меня ещё изменялись стили TBS_ENABLESELRANGE и TBS_FIXEDLENGTH. Последние 2 нормально применялись, а 1 изменялся но не работал. Получилось только через перехват CreateParams. | 
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Конечно сейчас не так как раньше было (у меня это было в 97-98 году прошлого века, тогда не было красивого "плюса", и вообще нихрена в дельфях не работало, а в VFP работало - поэтому и рыл). Сейчас нифига не мало ответов  | 
| 
			 
			#13  
			
			
			
			
		 | ||||
| 
 | ||||
|   "Балон" подключается элементарно, без использовании класса 1.5 десятка строк, а вот по TrackBar-у ничего найти не удалось (лень было перехватывать CreateParams а пришлось   ). | 
| 
			 
			#14  
			
			
			
			
		 | ||||
| 
 | ||||
|   Болон - он надстройка ИЕ, я не помню версии, но если ИЕ низкой версии - балона не будет - будет AV | 
| 
			 
			#15  
			
			
			
			
		 | ||||
| 
 | ||||
|   Не будет, требуется Comctl32.dll Internet Explorer 5, а это добро у всех есть, в противном случае он просто не появится (балон). |