![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
Как скроллировать, например, ListView по номеру строки. Или, другими словами, как сосчитать в пикселах ширину(или высоту) строки.
Спасибо. --------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Может это через одно место, но можно так
1) создаём объект сanvas 2) присваиваем ему нужный фонт 3) используем методы TextHeight, TextWidth для определения размера текста в пикселях -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
А по-честному низзя? Через проперти фонта или как? Ну не должно так быть!
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
либо через сообщение LVM_GETITEMRECT, либо через LVM_GETSTRINGWIDTH.
потом мона LVM_SCROLL еще есть LVM_GETVIEWRECT - незнаю нужно, нет ;) |
|||
|
||||
brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
вышеперечисленных LVM_ в хэлпе не нашел. А нельзя ли привести приметивный пример?
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
в MSDN? и не нашел? немогет быть =)
я за январь 2001 смотрел |
|||
|
||||
Dagger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 377 Регистрация: 4.9.2002 Где: Киев Репутация: нет Всего: 8 |
В Билдере (и, верно, в Дельфи) есть свойство фонта ... типа, Comp->Font->Height и задается отрицательным числом (зачастую). Что бы это могло значить? В общем, я пробовал посчитать строки на основе координат курсора относительно даного компонента и значения Height (преобразовав его в положительное число), то соответствие в строках 100%-е. Или я в чем-то заблуждаюсь? И подобный вопрос... Как можно узнать длину символа в пикселях? Пасиба ![]() |
|||
|
||||
brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
Borland C++Builder calculates Size using this formula:
Font->Size = -Font->Height * Font->PixelsPerInch / 72 Therefore, whenever you enter a positive value for the Height property, the font's Size property value changes to a negative number. Conversely, if you enter a positive value for the Size property, the font's Height property changes to a negative number. Positive Height includes the internal leading and negative excludes it. Если я понял правильно, то ВЫСОТА строки в ПИКСЕЛАХ Font->Height = -Font->Size * 72 / Font->PixelsPerInch Игнорируем минус, т.к. мы не устанавливаем, а ВЫЧИСЛЯЕМ значение. Так? --------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
Guest |
|
|||
Unregistered |
Получилось! Пока вертикально. Попробуйте у себя эту эмпирическую формулу:
ListView->Scroll(0, indx * ((ListView->Font->Size+1)/2-ListView->Font->Height)); indx - номер строки для позиционирования. Пожалуйста, поделитесь результатами. |
|||
|
||||
Guest |
|
|||
Unregistered |
Получилось! Пока вертикально. Попробуйте у себя эту эмпирическую формулу:
ListView->Scroll(0, indx * ((ListView->Font->Size+1)/2 - ListView->Font->Height)); indx - номер строки для позиционирования. Пожалуйста, поделитесь результатами. |
|||
|
||||
Unregistered |
|
|||
Unregistered |
Нонче все мы гости, обратите внимание, ВЕБанные мастера
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |