![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование элемента ListBoxСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
ListBox (список)- это элемент управления, содержащий набор пунктов, которые может выбрать пользователь. В VPI есть несколько предикатов для работы со списками: · lbox_Add (Window, Index, Str) добавляет новую строку Str в список в позицию с индексом Index. Если Index равен -1, то строка добавляется в конец списка. Нумерация элементов списка начинается с 0, т.е. первый элемент списка имеет индекс 0, второй -1 и т.д. · lbox_Clear (Window) удаляет все элементы списка · lbox_Delete (Window, Index) удаляет элемент с указанным индексом · lbox_GetItem (Window, Index) возвращает элемент списка с указанным индексом · Integer=lbox_GetSelIndex(Window) возвращает индекс выбранного элемента. Предикат завершится неуспешно, если никакой элемент в списке не выбран · lbox_IsSel(Window, Index) завершается успешно или неспешно в зависимости от того, является ли текущим заданный элемент в списке
Пример. Проект, позволяющий формировать и редактировать списки данных. Создать проект, содержащий элементы ListBox (список), Edit Control (поле ввода) для ввода новых данных, Push Button (кнопки) для добавления нового элемента в список и удаления выделенного элемента. Решение 1. Создайте новый проект. 2. Добавьте в главное меню новый пункт Spisok. 3. Создайте новое окно. Для этого в окне проекта нажмите кнопку Window на левой панели инструментов, а затем – кнопку New справа. Откроется окно Window Attributes. Введите имя создаваемого окна Spisok и нажмите ОК. 4. Разместите на макете появившегося нового окна следующие компоненты: Edit Control, Push Button, ListBox (рис.26).
![]() ![]() ![]()
![]()
![]() рис.26. Созданное окно Spisok Задайте имена-константы для размещенных элементов, например для Edit Control - idc_edit, для ListBox - id_list_box, для кнопки ADD - idc_add, для кнопки DELETE - idc_delete 5. Сгенерируйте стандартный код Visual Prolog для нового окна. Для этого в окне проекта нажмите кнопку Code Expert, когда выбрано окно Spisok. Откроется окно Dialog and Window Expert. Выберите исходный модуль spisok.pro и нажмите кнопку Default Code. 6. Запрограммируйте выбор пункта меню Spisok для вызова окна Spisok. Для этогов списке окон выберите Task Window, пункт Menu в списке Event Type и выделите строку id_spisok (имя пункта меню) в списке Event or Item. Нажмите кнопку Add Clause, чтобы сгенерировать Пролог-предложение для события. Название кнопки изменится на Edit Clause, когда код для события будет создан. Нажмите кнопку Edit Clause. Откроется окно редактора для файла Spisok.pro, в который добавлено предложение:
%BEGIN Task Window, id_spisok task_win_eh(_Win,e_Menu(id_spisok,_ShiftCtlAlt),0):-!, !. %END Task Window, id_spisok Допишите команду для открытия окна Spisok: win_spisok_Create(_Win). В результате должно получиться: %BEGIN Task Window, id_spisok task_win_eh(_Win,e_Menu(id_spisok,_ShiftCtlAlt),0):-!, win_spisok_Create(_Win), !. %END Task Window, id_spisok 7. Запрограммируйте нажатие кнопки ADD в окне Spisok для добавления нового элемента в список. Для этого вызовите окно Dialog and Window Expert (кнопка Code Expert) и в списке окон выберите Spisok. Выберите пункт Control в списке Event Type и выделите строку pb: idc_add (имя кнопки ADD). Нажмите кнопку Add Clause, а затем Edit Clause (рис.26).
рис.26. Созданное окно Spisok Откроется окно редактора для файла Spisok.pro, в который добавлено предложение: %BEGIN spisok, idc_add _CtlInfo win_spisok_eh(_Win,e_Control(idc_add,_CtrlType,_CtrlWin, _CtlInfo),0):-!, !. %END spisok, idc_add _CtlInfo Допишите необходимые команды. В результате должно получиться: %BEGIN spisok, idc_add _CtlInfo win_spisok_eh(_Win,e_Control(idc_add,_CtrlType,_CtrlWin, _CtlInfo),0):-!, LBOXWIN = win_GetCtlHandle(_Win,id_list_box), E_WINDOW = win_GetCtlHandle(_Win,idc_edit), EDIT_STRING= win_GetText(E_WINDOW), EDIT_STRING<>"", lbox_Add(LBOXWIN,-1,EDIT_STRING), !. %END spisok, idc_add _CtlInfo
8. Аналогично запрограммируйте нажатие кнопки DELETE в окне Spisok для удаления выделенного элемента списка. %BEGIN spisok, idc_delete _CtlInfo win_spisok_eh(_Win,e_Control(idc_delete,_CtrlType,_ CtrlWin, _CtlInfo),0):-!, LBOXWIN = win_GetCtlHandle(_Win,id_list_box), Index = lbox_GetSelIndex(LBOXWIN), lbox_Delete(LBOXWIN,Index), !. %END spisok, idc_delete _CtlInfo
9. Запустите проект на исполнение и протестируйте его. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ Доработайте проект проект следующим образом: 1) добавьте кнопку CLEAR, при нажатии на которую удаляется все содержимое списка (используйте предикат lbox_Clear); 2) добавьте компонент Static Text, который должен отображать выделенный элемент списка.
|
|||||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 527; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.191.235 (0.011 с.) |