|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.10.2014, 22:50 | #1 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 175
|
TListBox и Canvas
Здравствуйте, при нажатии на итем в листбоксе он заполняется цветом, при нажатии на другой итем на первом всё равно остаётся выделение, как мне его убрать? Подскажите пожалуйста.
Заполняется так (перед этим загружается картинка в фон листбокса): Код:
Здравствуйте
|
07.10.2014, 02:05 | #2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Если выделенным всегда должен быть только один (ну прям горец какой-то), то вспомни если забыл или узнай если не знал, что у конструкции if...then есть еще необязательный блок else.
|
07.10.2014, 05:45 | #3 | |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 175
|
Цитата:
Программно итем не выделен, выделение остаётся потому что canvas не очищает за собой. Оно только визуальное. .refresh и .repaint в onClick не подходят Код:
Здравствуйте
Последний раз редактировалось NEoMASTERR; 07.10.2014 в 05:55. |
|
07.10.2014, 09:41 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
07.10.2014, 16:34 | #5 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 175
|
Странное очищение если оно рисует (fill (анг) - заливка)...
Будем считать переделал на: Код:
Здравствуйте
Последний раз редактировалось NEoMASTERR; 07.10.2014 в 16:43. |
07.10.2014, 16:43 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
очищение есть рисование фона.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
07.10.2014, 17:10 | #7 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 175
|
Помогите мне выделить (залить, зарисовать, закрасить) выделенный итем и снять выделение со старого без изменения в размере формы (пока только так сбрасывается отрисованное ранее) Вот это тоже как вариант, но это извращение Код:
Здравствуйте
Последний раз редактировалось NEoMASTERR; 07.10.2014 в 17:14. |
07.10.2014, 17:27 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Снять выделение = нарисовать фон невыделенным цветом (та самая ветка else)
и на этом невыделенном фоне нарисовать все прочее. Все InvalidateRect как раз и делают ту самую заливку невыделенным цветом.
программа — запись алгоритма на языке понятном транслятору
|
07.10.2014, 17:33 | #9 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 175
|
Всё по старому, заливка остаётся
Код:
Здравствуйте
Последний раз редактировалось NEoMASTERR; 08.10.2014 в 05:46. |
08.10.2014, 10:27 | #10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Рисование-это использование тех или функций Canvas.
программа — запись алгоритма на языке понятном транслятору
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TListBox | hatsub | Работа с сетью в Delphi | 4 | 13.03.2011 13:40 |
TListBox | Dr.Badnezz | Компоненты Delphi | 3 | 03.02.2009 23:15 |
Вопрос по TListBox | Rifler | Помощь студентам | 2 | 17.11.2008 22:01 |
Вопрос с TListBox | Манжосов Денис :) | Помощь студентам | 11 | 06.04.2008 23:26 |
Помощь с TListBox | Манжосов Денис :) | Помощь студентам | 12 | 30.03.2008 13:46 |