На этом шаге мы рассмотрим создание окна дерева.
Теперь создадим окно, которое покажет структуру дерева. Это одно из инструментальных средств, которое может быть включено в модуль VPITools.pro. Перед созданием окна Tree следует удостовериться, что включена опция Tree Package на вкладке VPI Options в эксперте приложения (это можно сделать комбинацией клавиш <Ctrl>+<A>).
Рис.1. Опция Tree Package включена
Теперь подготовьте окно Tree, выполняя следующие шаги:
Рис.2. Добавление кода по умолчанию для окна дерева
Результат работы приложения изображен на рисунке 3:
Рис.3. Результат работы приложения
Загляните в файл Tree.pro и посмотрите, как создано дерево. В Прологе очень просто создавать дерево из различных структур данных, таких как списки файлов на вашем жестком диске или записи в базе данных.
win_tree_Create(_Parent):- ifdef use_tree Tree=tree("0",unmarked, [tree("3",unmarked,[],0), tree("2",unmarked, [tree("4",unmarked,[] ,0)],0), tree("1",unmarked,[],0)],0), TreeDir=tree_dirright, Font=font_Create(ff_Fixed,[],10), TreeWinInfo=tree_WinInfo(Font,TreeDir,[]), tree_Create(win_tree_WinType,win_tree_RCT, win_tree_Title,win_tree_Menu,_Parent, win_tree_Flags,win_tree_eh,0,Tree, TreeWinInfo,[]), enddef true.
Обратите внимание, что хотя окно Tree представляет собой особый вид окна, его код имеет такую же структуру, как и код для окон, которые вы создаете самостоятельно: имеется вызов для создания окна и стандартный обработчик событий.
Добавьте следующее предложение для события e_MouseUp и посмотрите, как легко получить информацию узла, щелкнув по нему мышью:
win_tree_eh(_Win, e_MouseUp(_PNT,_ShiftCtlAlt,_Button),0):-!, SelectorText=tree_GetSelectedNode(_Win), dlg_Note("Сообщение",SelectorText), !.
Результат работы приложения изображен на рисунке 4:
Рис.4. Результат работы приложения
Созданное приложение можно взять здесь (427,8 Кб).
На следующем шаге мы рассмотрим создание окна редактора.