По поводу ComboBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 16:04

Вот такая проблема. Требуется написать простенькую программу, суть ее - выводить записи, которые удовлетворяют определенным параметрам (выбранным в комбобоксах).
Трудность одна. Я ширину комбобокса ставлю равной максимальной ширине строчки. Но иногда попадаются просто титанические строчки. Например:
Устройства защиты от пережогов контактных проводов на четырёхпролетных изолирующих сопряжениях анкерных участков постоянного тока полукомпенсированной подвески с двумя контактными проводами

Из-за этого получается гигантский комбобокс. Ладно, я придумал, что их можно проскролливать при помощи фреймов - контейнеров. Но комбобокс ведетс себя ужасно (хотя и правильно с его точки зрения). Скриншот из класса "Comboфилия".
Bug2.png
Bug2.png (536.16 Кб) Просмотров: 997

Итак, вопросы:
1) Как сделать так, чтобы с одной стороны, в комбобоксе были вот эти "Войны и Миры" и корректно отображались, и чтобы комбобокс не был вот таких размеров (см. скриншот).
2) Как сделать так, чтобы вместе с листвьюшкой, которая видна на скриншоте, прокручивался и мой скролбар?
P.S. к первой проблеме придумал решения. Фуфло, но ладно. Слишком длинные строчки завершать троеточием.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: По поводу ComboBox

Сообщение Хакер » 30.04.2009 (Чт) 17:11

Не надо использовать комбо-бокс в данном случае, по-моему.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 17:43

Может быть. А есть какая-то альтернатива?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: По поводу ComboBox

Сообщение Хакер » 30.04.2009 (Чт) 17:49

Я ничего не знаю о задаче, о роли окна. Поэтому, не обладая никакими знаниями, ничего и предложить не могу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 18:19

Хорошо. Все, по порядку.
Отцу нужен человек (фрилансер), который написал бы для него сайт. Сайт торговый. Изделий много. Соответственно, он захотел, чтобы на сайте был сверхудобный поиск по изделиям (и туча других фишек). Суть сверхудобного поиска - отбор деталей по нескольким показателям (например, производитель и тип). Объяснить такое на пальцах оказалось непростым делом. Поэтому он позвал меня, чтобы я написал "показательно-демонстративное пособие", как должен работать поиск сайта.
Но это такая предистория.
Дана табличка на несколько тысяч записей. Колонок всего 14. Первое, что пришло в голову - поставить 14 комбобоксов, в которые юзер мог бы вводить критерии или выбирать из существующих. Идея оказалась ...фиговой. Для того, чтобы информация помещалась в комбобокс, я растягиваю его до максимальных размеров строки. Если все комбобоксы поставить в ряд, то они занимают около 3х экранов (в ширину). Если их попробовать равномерно распределить по форме, теряется восприятие всего этого.
Долго думал, но ничего "второго" в голову не пришло.
Поэтому я решил таки расположить их в аккуратненький ряд с возможностью этот ряд скроллить. Эта идея очень хорошо удалась. Удалась бы еще лучше, если бы была возможность отлавливать проскролливать ряд вместе с ListView. Или в этот самый листвьюшник запихать чертовы комбобоксы (кстати, очень неплохо должно получиться).
Но при нажатии на самый большой комбобокс - "Название"... Это чудо занимает весь экран и нелепо смотрится. Надо с этим что-то сделать.
Особенность задания - в том, что в любой момент база может поменяться. Колонки могут поменяться местами и т.д. и т.п.
P.S. Combo-гуру, взываю. Меня уже плющит от этих комбобоксов (комбококсов)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: По поводу ComboBox

Сообщение Хакер » 30.04.2009 (Чт) 18:37

Почему комбики такие огромные? Неужели строка-производитель занимает весь экран?
Вон, посмотри, кстати, как сделан отбор на сайте чип-и-дипа.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 18:46

Посмотрел. Классно, образец. Но, немного не то. Количество колонок (и критериев поиска) может достигать 150. Тут уже нужно что-то особое... Поиск по критериям поиска?
Комбик - да, занимает. Как я уже писал,
Устройства защиты от пережогов контактных проводов на четырёхпролетных изолирующих сопряжениях анкерных участков постоянного тока полукомпенсированной подвески с двумя контактными проводами

В базе есть еще больше. Это то, что с ходу.
Да, кстати. Может ты возьмешся за сайт?

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: По поводу ComboBox

Сообщение burik » 30.04.2009 (Чт) 18:50

Лично мне кажется, что делать комбо "название" - это неправильно. Потому как "название" это наиболее уникальный параметр из всех (как правило).
Да и большое число записей в комбо (если не знаешь точно нужного значения) - это неудобно для восприятия.
ИМХО нужно делать фильтр с помощью комбо по тем полям, где определен какой-то набор вариантов значения, а там где значение произвольно лучше делать текстовое поле, по которому осуществлять поиск записей включающих введенное значение.

P.S. А вообще мне нравится как реализована группировка в S-Grid с vbAccelerator. ИМХО, если его немного доработать напильником под конкретную задачу, то будет весьма удобно.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 18:52

В том то и дело, что дорабатывать напильником смысла не имеет. Иначе бы я взял какой-нибудь Grid. Эта программа - просто грубая иллюстрация, "как должно быть".
Дело в том, что "название" может быть и не уникальным. Например "Подвеска универсальная" встречается раз 10. И есть пустые названия.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: По поводу ComboBox

Сообщение burik » 30.04.2009 (Чт) 19:14

Дело в том, что "название" может быть и не уникальным. Например "Подвеска универсальная" встречается раз 10.

Так я ж и не говорю что уникальное, но наиболее близкое к этому. Т.е. меньше всего повторов в этом поле. Даже если каждое повторяться будет по 10 раз, получим в итоге из 1000 записей 100 элементов, а это уже, согласись, весьма неудобно.

В том то и дело, что дорабатывать напильником смысла не имеет. Иначе бы я взял какой-нибудь Grid. Эта программа - просто грубая иллюстрация, "как должно быть".

Ну вот я бы и взял тот грид и все. Пользователь будет последовательно группировать по любому полю, таким образом сужая область поиска.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 20:19

В том то и дело, как группировать. Если даже запихать комбо в грид - ничего особо хорошего не выйдет.
Так я ж и не говорю что уникальное, но наиболее близкое к этому. Т.е. меньше всего повторов в этом поле. Даже если каждое повторяться будет по 10 раз, получим в итоге из 1000 записей 100 элементов, а это уже, согласись, весьма неудобно.

Поле "Проект" имеет больше 150 уникальных значений. И также с другой кучей полей. Отказаться от выбора нельзя - так было сказано.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: По поводу ComboBox

Сообщение Хакер » 30.04.2009 (Чт) 20:21

Да, кстати. Может ты возьмешся за сайт?

Ну намыль подробности. С одной стороны, деньги бы сейчас не помешали (а когда они помешают), с другой стороны, я всё-таки работаю над другим хард/софт-проектом сейчас.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: По поводу ComboBox

Сообщение burik » 30.04.2009 (Чт) 20:50

Я не предлагаю пихать комбо в грид. Ты видел группировку в S-Grid? Суть моего предложения в группировке записей по любому из 14 полей. Потом можно выбрать из оставшихся 13-ти полей поле для вложенной группировки.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: По поводу ComboBox

Сообщение Debugger » 30.04.2009 (Чт) 21:42

Гм... Я, вероятно, не понял твоей мысли. Группировка таким образом (Outlook Style Grid Demostration?) для 2к записей, многие из которых имеют уникальное сочетание параметров... будет выглядеть странно. Ну, а ведь это - "пособие". На сайте так вообще ужасно будет.
Задача - сделать вменяемое "просеивание", чтобы потом показать человеку (Хакеру? Очень забавно будет), как это должно быть.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: По поводу ComboBox

Сообщение burik » 30.04.2009 (Чт) 21:53

Ну мое дело предложить. Я в общем-то не предлагаю именно так сделать, но по-моему в этом направлении надо копать..
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: По поводу ComboBox

Сообщение arvitaly » 30.04.2009 (Чт) 23:26

На сайте Я бы сделал поля text, определенную длину в него, а длинный техт в toltiptext, фильтр бы реализовал через Ajax. Ну как Grid'ы в оффлайн-приложениях.
В принципе я все уже так и делал для 12000 записей в базе фильтр по 5 полям, но ессно можно и больше


Вернуться в Visual Basic 1–6

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

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

    TopList