Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-1134020215
baks_uz
2005-12-08 08:36
2006.01.01
MiTeC System Information Component


3-1131694649
Карелин Артем
2005-11-11 10:37
2006.01.01
Обход ссылочной целостности в MS SQL 2000. Как сотворить?


4-1130437729
Erl
2005-10-27 22:28
2006.01.01
Bitmap


2-1134551801
Ugrael
2005-12-14 12:16
2006.01.01
Помогите новичку в MSSQL


9-1122544019
java73
2005-07-28 13:46
2006.01.01
поиск пути