CheckList
Наверное многие сталкивались с проблемой, когда нужно показать список для выбора каких-либо позиций или высветить список сотрудников или товаров, где необходимо было отметить те или иные позиции. Наверняка многие использовали для этого объект GRID или ActiveX. Но я принципиально отказываюсь от использования GRID, несмотря на то, что этот объект и обладает очень большими возможностями, в нем заложено столько же и всяких непредсказуемых моментов, которые неизвестно когда вылетят.От ActiveX - объектов я стараюсь также отказываться, когда это возможно, хотя и использую их в некоторых случаях.
Так вот, когда у меня возникла потребность в таком списке, то я решил использовать для этого объект LISTBOX, создав на основе его класс CHEKCLISTBOX, добавил в него несколько свойств и методов. Для отображения меток я использовал картинки BMP, вставляемые для каждой строки. Чтобы посмотреть как это работает, запустите форму SAMPLE.
В класс, в дополнении к базовому классу, добавлены следующие свойства:
CheckBMP- содержит имя файла с картинкой для отмеченых строк;
UNCheckBMP - содержит имя файла с картинкой для не отмеченных строк.
Также добавлены следующие методы:
AddMethod - метод добавляет строки, передаются следующие параметры -
tlCheck - Содержит .T., если строка должна быть отмечена и наборот tcCol1, tcCol2, tcCol3, tcCol4 -значения четырех столбцов, если они определены. Checked - принимает в качестве параметра номер строки и возвращает .T. если она отмечена. SetCheck - принимает в качестве параметра номер строки и устанавливает на нее метку.
UNSetCheck - принимает в качестве параметра номер строки и снимает с нее метку.
RET_COL_VAL - принимает в качестве параметра номер строки и номер колонки и возвращается ее значение.
Также используются стандартные методы Click, DblClick, RightClick, поэтому при их использовании необходимо вписывать в них dodefault(). При нажатии правой кнопки выводиться меню. Следует также заметить, что для выбора, т.е. отметки строки или ее снятия мышью можно использовать два варианта: сделать двойной клик на строке или щелкнуть один раз на картинке. Надеюсь, что это кому-то пригодиться.
Вложенные файлы
# |
Название |
Тип файла |
Размер |
---|---|---|---|
1 | chk | .zip | 5,42 КБ |