Список. Цветной.

Программирование на Visual Basic for Applications
Kindgott
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 11.04.2004 (Вс) 15:44
Откуда: Оттуда

Список. Цветной.

Сообщение Kindgott » 11.04.2004 (Вс) 16:04

У меня в Access есть список и я хочу, чтобы некоторые его строки были серыми, остальные - белыми.

Как этого добиться?
Под радуги склоном золото прячется -
Надо же было так на###читься!

Kindgott
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 11.04.2004 (Вс) 15:44
Откуда: Оттуда

ЫЫЫ

Сообщение Kindgott » 16.04.2004 (Пт) 12:53

Ну скажите, штоль, што так нельзя и нефик тупых вопрософф задовать и што сам дурак и што надо деньги зарабатывать а не фихней страдать и што вапче, чево к нам лезеш, мы сами не знаем и тебе не скажем и што Буш младшый - дерево безобразное и што грядет аопкалипsys и цветных спискофф тады никому не нать будет - хоть душа мойа упокоитца тады. :?
Под радуги склоном золото прячется -
Надо же было так на###читься!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.04.2004 (Пт) 13:29

Мой трук, тобрый готт :)
Сходи в Трёп, почитай PopupMenu Tricks. Там тебя направят к кастомной отрисовке менюшки. Уверяю тебя, элементы комбобокса кастомно отрисовываются точно также. Легко приспособишь.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kindgott
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 11.04.2004 (Вс) 15:44
Откуда: Оттуда

Сообщение Kindgott » 16.04.2004 (Пт) 16:21

Принцип понял - в качестве итема пихается объект, который сам себя и отрисовывает при помощи некоево нами писанного кода.

Тогда вопрос - как заставить обыкновенный ЛистБокс поддерживать данную вещь. Когда в нем лежит какой-либо объект, он ведь просто нагло пишет "Поле Объекта OLE" и даже не пытается ничего изродить, даже если это рисунок!

Это мне придется писать свой собственный список? :shock: (Моя не совсем четко понимать данный вопрос) :roll: :oops:

Код: Выделить всё
Public Sub ИМХО(ПридетсяПисатьСвойСобственныйСписок as Opinion)
If ПридетсяПисатьСвойСобственныйСписок.Value=True Then
DoCmd.ВыпучитьЛевыйГлаз
DoCmd.ВыпучитьПравыйГлаз
DoCmd.Повеситься("На сетевом шнуре", vbMustDie)
MsgBox("Goodbye world!")
End If
End Sub
Под радуги склоном золото прячется -
Надо же было так на###читься!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.04.2004 (Пт) 16:46

Ты не понял принцип.
Когда ты делаешь перемещение по списку (или список показывается впервые), то Windows отрисовывает каждый элемент (выводит его через API DrawText). Дополнительно рисуется фокус, если этот элемент выделен. Всем этим занимается стандартная процедура процедура.
Но ты можешь заменить эту стандартную процедуру на свою. Для начала уведомляешь винду, что ты подменяешь стандартный обработчик событий на свой. Потом в этом своем обработчике ждешь событие "надо нарисовать элемент" игнорируя все прочие (вернее, не игнорируя, а пересылая их на стандартный) и когда такое событие происходит, делаешь то, что от тебя требуется.
В твою процедуру должны передаваться аргументы (указатели на элемент в списке и на DC), на нем и рисуешь, как тебе угодно.

Все элементарно, доннерветтер :)
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 105

    TopList