![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Здравствуйте.
В ходе выполнения программы, нужно у ListBox'а убрать или добавить ему стиль LBS_OWNERDRAWVARIABLE / LBS_OWNERDRAWFIXED / LBS_NOTIFY. Код:
И так же LBS_NOTIFY. Если не указать его при создании листбокса, то уведомления не приходят. И наоборот. Если создать листбокс с нужными стилями, а потом убрать их, то уведомления не перестанут приходить. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Во первых зачем это вообще нужно? Раз уж один раз сделали рисовалку так и рисуйте...
А раз уж так надо, то сделайте два листбокса и прячьте ненужный. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Завернуть ListBox в класс, сделать свойство что-то типа OwnDraw:boolean.
Чтобы потом просто Код:
Но встала вышеописанная проблема. В общем, это не критично. Но разве нельзя изменять эти стили уже после создания контрола? VCL же это умеет вроде (могу ошибаться). |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Можно ваще написать свой листбокс с нуля. И тогда в нем Вы хозяин.
А если берете готовый, то в вашем методе OwnDraw не трудно окно выгрузить, и загрузить по-новой с нужными стилями. Да, придется временно сохранить данные листбокса, но мы же программисты... |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]() |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
ага, и тратить кучу времени на копирование строк. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Ааа, вот оно что...
Ну так создавайте всегда со стилем LBS_OWNERDRAWFIXED а обработчик вызывайте только если установлен OwnDraw, если не установлен рисуйте "стандартно". Но действительно будет проще изменить конструктор... |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Динамическое изменение не каждого стиля даст ожидаемый результат. Можно получить большой облом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Не скажу. Просто как-то тоже сталкивался, но давно, не помню ситуацию. Можно в исходниках того же делфи покопаться на счет использования SetWindowLong
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 10.12.2016 в 11:43. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разные стили в одной строке ListBox | rota | Общие вопросы Delphi | 14 | 26.02.2012 21:48 |
Добавить/убрать раскладку | Stilet | Win Api | 5 | 20.07.2011 11:35 |
как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play) | blackstersl | Общие вопросы Delphi | 11 | 09.06.2010 13:23 |
Чем отличаются стили listBox'a? | TwiX | Общие вопросы Delphi | 2 | 14.11.2009 01:40 |
Как в RichView убрать стили? | KurtWagner | Компоненты Delphi | 2 | 05.02.2009 10:43 |