bash.im ithappens.me zadolba.li
8161

Под шелест выпадающих ячеек

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

Задача именно в такой постановке решалась уже не раз, потому и сейчас делаем так же. Вариантов решения два: либо просто нарисовать таблицу и по щелчку мышкой на ячейке отрисовывать поверх ячейки выпадающий список, а после выбора в нём значения записывать новые данные в таблицу и убирать список, либо воспользоваться готовым компонентом, который делает то же самое, но сам управляет существованием выпадающего списка и хранимыми данными. Первый способ быстрее и грубее, второй изящнее и правильнее в плане разделения логики, данных и интерфейса, но немного дольше в кодировании — минут 40 против 20 у первого варианта.

Ответственный за модуль программист затихает за своим компьютером часа на четыре, после чего демонстрирует плод своего труда. Поскольку лично он ни одним из этих двух вариантов раньше не пользовался, то решил задачу по-своему. Он просто поставил на панель полторы сотни выпадающих списков в виде таблицы.Естественно, панель тормозит при перерисовке, при скроллировании приходится вручную управлять тем, какие списки видны, а какие — нет, а уж код, собирающий введённые пользователем значения для дальнейшей обработки, не поддаётся описанию. Посадили переделывать, выдав кусок старого проекта.