![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Надо сместить текст в ячейке VirtualTreeView в центр.
Не знаю и не могу найти нигде код, отвечающий за управление форматированием ячейки. Присоединённый файл ( Кол-во скачиваний: 98 ) ![]() |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
В design-mode:
Ку? |
|||
|
||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Вы что издеваетесь? Я же вроде предельно ясно на картинке изобразил что получается и что хотелось бы добиться.
vt.Header.Columns[0].Alignment:=taCenter Эта опция, ессно, включена в настройках дерева. Но я заметил, что она глюкавая до чертиков и применима только к Caption - то есть к заголовку колонки и никак не влияет на управление содержимым ячейки данных. Хорошо, прикладываю другую картинку, более подробную, подправил картинку. Это сообщение отредактировал(а) sanik - 20.4.2012, 20:53 Присоединённый файл ( Кол-во скачиваний: 72 ) ![]() |
|||
|
||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Поразительно, что никто не заморачивался с такой проблемой. Не нашел в сети после упорных поисков ничего толкового.
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Так и подмывает ответить "Да". Ключевое слово здесь - "вроде". Теперь - к делу. Во-первых, смотрим функцию DrawText. Выясняем, что для того, чтобы отображение было центрировано по вертикали, нужно выставить флаг DT_VCENTER. А он работает только совместно с DT_SINGLELINE. Идем в исходники TCustomVirtualStringTree.PaintNormalText. (у меня версия 4.8.5, но я думаю в последующем вряд ли что поменялось). И наблюдаем там примерно следующее:
Итого: для того, чтобы текст центрировался по вертикали, нужно чтобы у ячейки в States не было vsMultiline и текст должен "вписываться" полностью в отведенный ему регион. Как-то так ![]() Присоединённый файл ( Кол-во скачиваний: 55 ) ![]() |
|||
|
||||
kami |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Ну и для того, чтобы нормально отработала строка
нужно, чтобы
Которое, кстати, к заголовку столбца отношения не имеет. На заголовок влияет
P.S. Всё вышесказанное справедливо для версии 4.8.5, в последующих местоположение флагов и их состав вполне могли поменяться. Это сообщение отредактировал(а) kami - 20.4.2012, 22:08 |
||||||
|
|||||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
забавно! сам только что копал в сети про DrawTextW,
спасибо буду смотреть я позавчера выкладывал тестовый проект с multiline node Довести до ума multirow virtual treeview, мультистрочный virtual treeview тогда получается, что я пытаюсь совместить несовместимое - либо мультилайн, либо центровка по вертикали!? как я понимаю:
надо ИЗБИРАТЕЛЬНО применить vsMultiline для колонок дерева, то есть для первых двух НЕ НУЖНО устанавливать мультилайн. Не могли бы Вы посмотреть сам проект и "подкрутить гаечку". Надеюсь, я не выгляжу халявщиком, весь тестовый проект собрал сам, осталось немного. ![]() Это сообщение отредактировал(а) sanik - 20.4.2012, 22:46 Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
И какой грид ни возьми, везде так... -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
Nightmareterrible |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.4.2013 Репутация: нет Всего: нет |
sanik,
Не знаю, посещаете вы ещё форум или нет, но решение я нашёл.
И обязательно в OnGetText убираем текст с колонки, иначе у вас будут 2 одинаковых текста
|
||||
|
|||||
sanik |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
ничерта не понятно. Пытаюсь применить в выложенном проекте.
Ругается на уже на это -
у меня для rec. нет column0, есть MessageAuthor, MessageDate, MessageText если ставлю MessageAuthor - то
Это сообщение отредактировал(а) sanik - 11.7.2013, 01:49 |
||||
|
|||||
ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: 6 Всего: 6 |
В ошибке черным по белому написанно, что типы не совпадают
![]() Нужно привести или к Char или WideChar... Это сообщение отредактировал(а) ZBugz - 12.7.2013, 05:58 |
|||
|
||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
так сделал, но ничего в работе проги не изменилось, подпись все равно находится вверху ячейки, а не рядом с пунктирной линией. Это сообщение отредактировал(а) sanik - 11.7.2013, 19:27 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Чего тут непонятно? Ваша версия Дельфи ждет в качестве второго параметра процедуры DrawTextEx PChar (что в вашей Дельфи соответствует PAnsiChar), а вы ей бездумно подсовываете PWideChar. Попробуйте написать
P.S. Я вообще не понимаю зачем в WinAPI-шной функции явно указывать PWideChar/PAnsiChar вместо PChar? Это сообщение отредактировал(а) northener - 11.7.2013, 18:47 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Ну просто коллега Nightmareterrible предложил вариант, я пробую. Но я серьезно сомневаюсь, что существует решение. Пока из всего, что предложили - ничего не срабатывает в проекте. (красным прямоугольником показано ЖЕЛАТЕЛЬНОЕ расположение) ____________________________ Весь вышеобсужденный траходром "магически" решился путем скачивания и переустановки последней версии компонента. Вероятно, создатели поправили свои косяки. Буду последовательно удалять из проекта примененные советы, чтобы найти что привело к разрешению проблемы. Это сообщение отредактировал(а) sanik - 11.7.2013, 21:19 Присоединённый файл ( Кол-во скачиваний: 16 ) ![]() |
|||
|
||||
sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
выложенный вверху проект полностью правильно работает на выравнивание в ячейке
Присоединённый файл ( Кол-во скачиваний: 32 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |