Текущий архив: 2006.01.01;
Скачать: CL | DM;
Вниз
Компонент Combobox + CheckListBox Найти похожие ветки
← →
Antonn © (2005-12-06 12:07) [0]Здавствуйте!
Понадобился компонент являющийся комбобоксом, но имеющим checkbox"ы в строках, кто нибудь встречал такой? Желательно самый простейший, с открытым кодом и идущий не библиотеке компонент.
Спасибо!
← →
Игорь Шевченко © (2005-12-06 12:18) [1]А как ты этим чудом пользоваться собираешься ?
у ComboBox ведь есть вполне определенная реакция на клавишу пробел и на щелчок мышью по элементу выпадающего списка ?
← →
Antonn © (2005-12-06 12:42) [2]Выпал список, ткнул в него, галка снялась/поставилась, список закрылся. или закрылся после потери фокуса.
А вообще я ньансов не знаю, потому и спросил.
← →
Игорь Шевченко © (2005-12-06 13:12) [3]Antonn © (06.12.05 12:42) [2]
> А вообще я ньансов не знаю, потому и спросил.
А надо тебе что от этого элемента управления ? В смысле, нафига такой изврат потребовался ?
← →
Antonn © (2005-12-06 13:49) [4]В общем у меня в программе тарификация стоимости трафика, 16 полей, в каждом поле указывается временной интервал/стоимость/тип(вход./исход.), и нужно ввести учет этого тарифного поля в определенные дни недели и месяцы. Вот 2 комбобокса я и решил использовать для выбора дней недель и месяцев, чтобы покомпактней вышло. Хоть эти 16 полей в скроллбоксе, и так уже довольно много каждое поле занимает, если положить обычные ChecklistBox"ы, воспринимаемость резко падает, струдно сразу понять, куда жать.
← →
Antonn © (2005-12-06 13:50) [5]скрин: http://deskclock.narod.ru/_images/prim_time.GIF (10кб)
http://deskclock.narod.ru/_images/prim_traf.GIF (6кб)
← →
Amoeba © (2005-12-06 13:54) [6]Как ни странно, но такой компонент в существует (библиотека LMD Tools):
TLMDCheckListComboBox allows selection of one or several values from a list of values. Selected values will be diplayed comma seprated in the edit field.
http://www.lmd.de/mfs/products/LMD70.htm
Имеется только в платной версии библиотеки (на халяву здесь: http://tdelphi.spb.ru/ )
← →
Antonn © (2005-12-06 14:18) [7]Amoeba © (06.12.05 13:54) [6]
спасибо, сейчас скачаю...
← →
Игорь Шевченко © (2005-12-06 14:39) [8]
> В общем у меня в программе тарификация стоимости трафика,
> 16 полей, в каждом поле указывается временной интервал/стоимость/тип(вход.
> /исход.), и нужно ввести учет этого тарифного поля в определенные
> дни недели и месяцы
Сообразил. Только я бы не ComboBox сделал, а обычную Popup-форму небольшую, с кнопками ОK,Cancel и CheckListBox-ом. И использовал бы TComboEdit из RxLibrary, чтобы она по кнопке со стрелочкой выпадала.
← →
Sandman29 © (2005-12-06 15:06) [9]Игорь Шевченко © (06.12.05 14:39) [8]
Дополнение. В Вашем случае пользователю будет удобнее закрывать список - выбрал все, что надо и нажал кнопку OK. А в случае первоначального автора придется либо открывать список несколько раз либо кликать на самой форме для закрытия.
← →
Antonn © (2005-12-06 15:21) [10]я уже хотел приспособить невидимую панель, которую показывать у нажатой кнопке, но думаю, вдруг есть сабжевый компонент.
В принципе, можно было в рантайме создавать форму, и на ней checkbox"ы, но до меня это как то сразу не дошло так изголяться:)
скачал LMD Tools, посмотрел, хотел переписать, чтобы не ставить этот пакет, но как то расхотелось, там все завязано слишком глубоко.
Если обычной OnDrawItem не реализую, придется отдельной формой делать.
Sandman29 © (06.12.05 15:06) [9]
вот это-то меня и останавливает от реализации в OnDrawItem и использовании обычного комбобокса...
← →
Torry © (2005-12-06 15:47) [11]TO Игорь Шевченко © (06.12.05 14:39) [8]
>Сообразил. Только я бы не ComboBox сделал, а обычную Popup-форму >небольшую, с кнопками ОK,Cancel и CheckListBox-ом. И использовал бы >TComboEdit из RxLibrary, чтобы она по кнопке со стрелочкой выпадала.
А я бы pop-up меню с check-box использовал :-) Эргономичней и item можно kturj динамически добавить/удалить.
← →
Antonn © (2005-12-06 15:58) [12]Torry © (06.12.05 15:47) [11]
А я бы pop-up меню с check-box использовал :-)
а его тоже надо много раз открывать:)
← →
Torry © (2005-12-06 16:02) [13]Ну, тогда CheckListBox на форме :-) http://www.torry.net/pages.php?id=136
← →
Игорь Шевченко © (2005-12-06 16:03) [14]Torry © (06.12.05 15:47) [11]
Дней недели всего семь, обычно они не удаляются и не добавляются (хотя я от второго воскресенья бы не отказался), к тому же, Sandman29 верно подметил, что желательно выбрать один раз несклько элементов, в данном случае - дней, а через Popup Menu, да каждый раз открывать, да еще в 16 полях - застрелишься. Особенно интересно будет, если настройки выбора не сохранять, и предлагать каждый раз выбирать нужные дни во всех 16 контролах :))
← →
Torry © (2005-12-06 16:07) [15]Игорь, я просто невнимательно прочитал предыдущие сообщения, каюсь... Было бы за что схватиться, выдрал бы клок волос :-)
← →
Antonn © (2005-12-06 16:11) [16]Игорь Шевченко © (06.12.05 16:03) [14]
а там еще и месяцы нужно выбирать, итого еще +12 галок :))
← →
Игорь Шевченко © (2005-12-06 16:14) [17]Antonn © (06.12.05 16:11) [16]
А в каждом месяце свои дни ?
← →
Antonn © (2005-12-06 16:19) [18]Игорь Шевченко © (06.12.05 16:14) [17]
А в каждом месяце свои дни ?
нет, слава богу:)
просто месяцы и просто дни недели.
← →
Игорь Шевченко © (2005-12-06 16:22) [19]Antonn © (06.12.05 16:19) [18]
Это не кульно. Надо, чтобы дни недели были каждые для своего месяца - тогда можно симпатичный интерфейс сделать, как в Control Panel - Add/Remove programs - где на выделенной строке открывается своя форма для выбора, при перемещении на другую строку значения для дней недели в конкретном месяце запоминаются и выдаются строчкой через запятую :)
← →
Antonn © (2005-12-06 16:31) [20]Игорь Шевченко © (06.12.05 16:22) [19]
переварил:) Это уж слишком круто и кульно, думаю не стоит того:)
← →
Игорь Шевченко © (2005-12-06 16:35) [21]Antonn © (06.12.05 16:31) [20]
Тут другая проблема - как ты собираешься показывать выбор в закрытом состоянии, если выбрано, скажем, 10 месяцев и 5 дней ? :)
← →
Antonn © (2005-12-06 16:43) [22]Игорь Шевченко © (06.12.05 16:35) [21]</>
ну надо подумать:)
например(если окно дополнительное используется), контрол типа едита(прямоугольный:)) и кнопка рядом, на этом самом прямоугольном контроле и рисовать в ряд квадратики от checkbox"а :)
← →
Antonn © (2005-12-06 16:46) [23]Antonn © (06.12.05 16:43) [22]
т.е. семь квадратиков (или 12), чекнутые и нечекнутые :)
← →
Игорь Шевченко © (2005-12-06 16:55) [24]Antonn © (06.12.05 16:43) [22]
У тебя изначально была идея с ComboBox, чтобы место на форме освободить, я так понял. Предполагалось, что в ComboBoxе будет как-то зафиксировано то, что пользователь выбрал. Так вот, как ты собираешься отображать, что пользователь выбрал 10 месяцев и пять дней внутри ComboBox"а ? :)
← →
Sandman29 © (2005-12-06 16:59) [25]ИМХО это вообще должна быть отдельная закладка (TTabSheet)
← →
Antonn © (2005-12-06 16:59) [26]Игорь Шевченко © (06.12.05 16:55) [24]
ну OnDrawItem хотел подключить и там рисовать галки:)
может и громоздко, но хотел делать так, в текст итема писать "1" или "0" и к этому дописывать "|Понедельник", все что после "|" вывожу cancvas.textout(), а до черты проверяю, если "1", то рисую чекнутый квадратик, если "0" то не чекнутый:)
← →
Antonn © (2005-12-06 17:02) [27]Sandman29 © (06.12.05 16:59) [25]
ИМХО это вообще должна быть отдельная закладка (TTabSheet)
и куда ее приклеить? К каждому полю, или сделать закладку, и там опять 16 полей?
← →
Sandman29 © (2005-12-06 17:09) [28]Antonn © (06.12.05 17:02) [27]
Идея в том, что никому не интересно видеть список из 11 выбранных месяцев и 26 выбранных дней. Поэтому смотреть на данные можно в том же виде, в каком они вводятся.
Вместо закладки можно отдельную форму, отображаемую по кнопке. На форме CheckListBox с месяцами и грид 5 на 7 с днями.
← →
Gero © (2005-12-06 17:16) [29]ComboBox с CheckBox"ами — плохой контрол.
ComboBox сам по себе предполагает возможность именно единичного выбора. Не стоит запутывать пользователя.
← →
Antonn © (2005-12-06 17:58) [30]Sandman29 © (06.12.05 17:09) [28]
Идея в том, что никому не интересно видеть список из 11 выбранных месяцев и 26 выбранных дней.
да мне надо не все дни месяца, а дни недели(понедельник, вторник...) и месяцы(январь, февраль...).
Сейчас делаю с всплывающей формой, вроде получается:)
← →
Игорь Шевченко © (2005-12-06 18:09) [31]Antonn © (06.12.05 17:58) [30]
Форма у тебя всплыла и ты выбрал. А потом ты как будешь показывать ? :))
Вот в ComboBox"е после того, как он закрылся, в его поле остается выбранный текст. А у тебя как будет после закрытия всплывающей формы ?
← →
Antonn © (2005-12-06 18:24) [32]Игорь Шевченко © (06.12.05 18:09) [31]
Вот в ComboBox"е после того, как он закрылся, в его поле остается выбранный текст. А у тебя как будет после закрытия всплывающей формы ?
будет ряд квадратиков, примерно так:
http://an-files.narod.ru/popupwind.GIF (22Кб)
квадратики я может быть побольше заделаю, пока что из CheckboxList"а выдрал:)
← →
Antonn © (2005-12-06 18:25) [33]т.е. от комбобокса я уже отказался:)
← →
Игорь Шевченко © (2005-12-06 18:28) [34]Antonn © (06.12.05 18:24) [32]
Я бы две кнопки сделал в выпадающей форме - Ok и отмена.
А тебе в каждом из 16 полей надо выбирать месяцы и дни недели ?
← →
Antonn © (2005-12-06 18:32) [35]Игорь Шевченко © (06.12.05 18:28) [34]
Я бы две кнопки сделал в выпадающей форме - Ok и отмена.
ну да, это позже. еще хотел поместить "убрать все" и "отметить все", да места маловато.
А тебе в каждом из 16 полей надо выбирать месяцы и дни недели ?
угу, в каждом. По умолчанию они все выбраны, так что остается только убрать лишнее. А так на всех 16ти полях будет лишь полоска с квадратиками и кнопка, а окно одно на всех (хоть какая то экономия ресурсов:))
← →
Antonn © (2005-12-06 18:34) [36]Antonn © (06.12.05 18:32) [35]
еще хотел поместить "убрать все" и "отметить все", да места маловато.
хотя если сделать всплывающее окно шириной с полоску "с квадратиками", но и влезет...
Страницы: 1 вся ветка
Текущий архив: 2006.01.01;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.042 c