|
|
|
gAlexKo |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Что-то странное. Может глюк 6 Билдера?
Кладу TrackBar на форму. Хочу сделать метку на значении 5. Не выходит! __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { TrackBar1->Max = 10; TrackBar1->Min = 0; TrackBar1->Position = 0; TrackBar1->TickStyle = tsManual; TrackBar1->SetTick(5); } //--------------------------------------------------------------------------- Это сообщение отредактировал(а) gAlexKo - 7.4.2015, 10:09 |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
gAlexKo |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
И что это дает? Postion это значение ползунка. А нужно сделать шкалу из меток вдоль TrackBar используя функцию SetTick. В твоем примере метка на значении 5 также не проставляется. Пробовал проставлять метки используя свойство Frequency (получилось), но это немного не то, что мне надо. А вот с использованием функции SetTick прямо засада какая-то. Это сообщение отредактировал(а) gAlexKo - 7.4.2015, 10:09 |
||||
|
|||||
586 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Вроде нормально работает SetTick. Для наглядности изменяю другие свойства:
|
|||
|
||||
gAlexKo |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Мне удалось найти решение - это действительно недоработка Борланда, по крайней мере в части документации.
Итак, если нужно ставить метки в TTrackBar при помощи SetTick нужно делать одним из следующих вариантов: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { TrackBar1->Max = 10; TrackBar1->Min = 0; TrackBar1->Position = 0; TrackBar1->TickStyle = tsManual; //Первый вариант решения: TrackBar1->HandleNeeded(); TrackBar1->SetTick(5); //метка на по значению 5 // или второй вариант: //SendMessage(TrackBar1->Handle, TBM_SETTIC, 0, 5); //метка на по значению 5 } |
|||
|
||||
586 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
С++Builder6. В компоненте ничего дополнительно не менял.
|
|||
|
||||
gAlexKo |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Frequency и SetTick не используются вместе. Frequency - это делать метки каждые N значений. Работает только когда TickStyle == tsAuto (что по умолчанию). SetTick(N) - это устанавливать метки на НУЖНОМ значении. Для этого нужно TickStyle == tsManual. PS: Кстати то же самое в Delphi 2010. Это сообщение отредактировал(а) gAlexKo - 7.4.2015, 10:31 |
||||
|
|||||
586 |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Опыты показывают что и при tsManual тоже.
|
||||
|
|||||
gAlexKo |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Я откомпилоировал твои два варианта - ни на одном из них у меня МЕТКИ (2 и 3) не появились (появились только две метки по краям бара). Даже не знаю как ты обошелся без функции NeedHandle() и почему у тебя их видно. (CBuilder 6.0) Как я понял проблема известная в делфийских кругах: http://sohu.io/questions/927922/how-to-set...-in-delphi-2010 Это сообщение отредактировал(а) gAlexKo - 7.4.2015, 12:55 |
|||
|
||||
586 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Сейчас я эту проблему обнаружил, когда скопировал свой код в конструктор формы. SetTick действительно не работает. Решение использовать HandleNeeded хорошее. Очень похоже на баг в SetTick - по-хорошему, HandleNeeded должен вызываться автоматически.
|
|||
|
||||
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |