Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Работа с интерфейсом GUI в Visual Prolog 7.4
Ответ
 
Опции темы Опции просмотра
  (#31 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,795
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 07.03.2014, 11:30

Да и загружать базу данных не надо при каждом открытии формы. Лучше писать reconsult или вообще загрузить где-то отдельно, или проверять всякий раз загружали уже или нет.
Ответить с цитированием
Пользователь сказал cпасибо:
ShD (07.03.2014)
  (#32 (permalink)) Старый
ShD ShD вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.01.2014
По умолчанию 07.03.2014, 13:10

Со Static Text вместо List Box- сообразил поздно, но т.к. позволяет , то и оставил, хотя переделаю потом конечно.
Сейчас, благодаря вашей подсказке все работает...но список сортируется...и выводится не в том порядке строки, а по алфавиту Не составит ли Вам труд заодно и подсказать как сортировку отключить?
Ответить с цитированием
  (#33 (permalink)) Старый
ShD ShD вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.01.2014
По умолчанию 07.03.2014, 13:52

Все нашел! Спасибо!
listbox_ctl:addListAt(0, Info),fail.
Ответить с цитированием
  (#34 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 738
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 08.03.2014, 11:31

setSort
Ответить с цитированием
  (#35 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 09.09.2020, 07:06

Диалоговое окно, где есть кнопки (создаются по дефлоту) newOk, newCancel.
Есть ли встроенное средство для проверки, что по окончанию была нажата кнопка Ок?

Сам сделал так (в классе диалога):
prolog Код:
facts
    pressOk : boolean := false().
predicates
    onOkClick : button::clickResponder.
clauses
    onOkClick(_Source) = button::defaultAction :-
        pressOk := true().
Ответить с цитированием
Ads.
  (#36 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,148
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 09.09.2020, 12:58

Цитата:
Сообщение от Black_Dragon Посмотреть сообщение
для проверки, что по окончанию была нажата кнопка Ок?
Вот здесь не совсем понятно. Проверять где: в родительском окне или в самом диалоге?
Если в самом диалоге, то зачем проверять? Обработчик нажатия кнопки Ok знает какая нажата кнопка. Также и с кнопкой Cancel.
Если в родительском окне, то я лично делаю по-простому - передаю факт, но этот факт должен быть видимым и в родительском окне. Для такого рода пересылок данных лично я создаю класс для (глобальных) фактов, которые должны быть видны во все/некоторых классах проекта.
Можно делать по другому - так, как делается в примерах от PDC и в PFC, то есть создавать диалоги в виде функций, которые возвращают код нажатой кнопки. Но мне кажется, что передавать факт проще диалогов-функций. Хотя Вам может показаться ровно наоборот.
Ответить с цитированием
Ads
  (#37 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 15.09.2020, 14:26

Есть listButton, куда я подключил текстовый список.
Ни как не могу получить из него выбранную строку.
getSelectedIndices, getSelectedItems, getAllSelected возвращают пустые списки, а tryGetSelectedIndex - fail.
для listEdit, getText возвращает пустую строку
Ответить с цитированием
  (#38 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 15.09.2020, 15:03

+
Это не работает после возвращения из Диалога.
Внутри Диалога все нормально.
а editControl - работает корректно.
Ответить с цитированием
  (#39 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,148
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 15.09.2020, 15:59

Цитата:
Сообщение от Black_Dragon Посмотреть сообщение
Это не работает после возвращения из Диалога.
Естес-но. Диалог то уже мёртв. Внутри диалога пишите обработчик на кнопку Ok. В нём смотрите getSelectedIndices, getSelectedItems, getAllSelected и т.п. и сохраняйте передаваемые данные в свойствах (property) того окна, из которого этот диалог вызывался. Лично я так делаю. Можно и по другому, но на мой взгляд это самый прозрачный и простой способ передачи данных из диалога к родителю.
Ответить с цитированием
  (#40 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 15.09.2020, 17:36

Dialog = swapDialog:display(....), A = Dialog:getSel(), ...
Почему он мертв? Мы за пределы видимости переменной не вышли, все контролы доступны и данные в них есть. Из editControl же все вытаскивается нормально.

Ну на кнопку Ок я и повесил с сохранением в фактах...
Ответить с цитированием
  (#41 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,148
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 15.09.2020, 21:29

Без исходника я не могу ничего сказать.
Ответить с цитированием
  (#42 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 15.09.2020, 22:02

prolog Код:
onSwapAdd(_Cmd) :-
        [FS] = personalListControl_ctl:getSelectedItems(),
        person::splitPerson(FS, FIO, Tabel, _, _, _),
        Tos = person::getEmployeesShort(Tabel),
        Jobs = person::getJobsL(),
        Dialog = swapDialog::display(This, FIO, Tos, Jobs),
        Dialog:isOk() = true,
        !,
        person::splitSwapEmployee(Dialog:getSwapFIO(), SwapFIO, _, _),
        (person::addSwap(Tabel, SwapFIO, Dialog:getSwapJob()) and !
            and logText(string::format("Замещение добавлено: %s -> %s (%s)\n", FIO, SwapFIO, Dialog:getSwapJob())) and updateSwap(Tabel)
            or logText(string::format("Замещение уже существует: %s -> %s (%s)\n", FIO, SwapFIO, Dialog:getSwapJob())))
        or
        succeed.
Ответить с цитированием
  (#43 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 16.09.2020, 06:33

В самом диалоге
prolog Код:
getFIO() = editFIO_ctl:getText().
getSwapFIO() = selFIO.
getSwapJob() = string::replaceAll(string::trim(string::trimInner(inJob)), "\"/", "", string::caseInsensitive, _).
isOk() = pressOk.
onOkClick(_Source) = button::defaultAction :-
        inJob := listSwapJob_ctl:getText(),
        Fs = listSwapFIO_ctl:getSelectedItems(),
        ([F | _] = Fs or F = ""),
        !,
        selFIO := F,
        pressOk := true.

Последний раз редактировалось Black_Dragon; 16.09.2020 в 06:37
Ответить с цитированием
  (#44 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 18.09.2020, 09:06

9.06
1) listButton
Не нашел как сразу же установить нужную позицию в списке.

2) messagecontrol
Можно ли выводить туда форматированный текст: жирный и курсив?
Ответить с цитированием
  (#45 (permalink)) Старый
Black_Dragon Black_Dragon вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2020
По умолчанию 18.09.2020, 14:14

Цитата:
Сообщение от Black_Dragon Посмотреть сообщение
2) messagecontrol
Можно ли выводить туда форматированный текст: жирный и курсив?
У него есть свойство sciLexer, которое имеет огромную кучу низкоуровневых методов.
messageControl_ctl:sciLexer:styleSetBold(0, true)
Так меняется дефлотный стиль на Bold.
Хелп "пустой", есть перечень методов, но почти все без описания.

Нашел такую инфу, но их сайт с исходниками уже не рабочий...
https://discuss.visual-prolog.com/viewtopic.php?t=13161
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа в visual prolog AndreSan Задания за деньги 3 13.12.2015 17:34
Работа с изображениями в Visual Prolog serega9191 Prolog 4 14.01.2014 01:05
Работа с текстом в Visual Prolog 7.1 serega9191 Prolog 7 16.12.2013 02:05
Перенос программ из {TurboProlog.....Visual Prolog 5.2} в Visual Prolog 7 imported_Jenny_ Prolog 30 25.03.2013 19:15
работа со списками Visual Prolog 5.2 vlangel Prolog 1 21.12.2011 15:55
Работа с файлами Пролога в Visual Prolog tumanovalex Prolog 17 15.09.2011 00:47
Помогите переделать задачу из Turbo Prolog в Visual Prolog 5 imported_Anneta Prolog 3 23.12.2010 22:59
Работа с таблицами и БД в Visual Prolog rain_man Prolog 1 22.12.2010 00:08
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) olik567 Prolog 4 07.10.2009 17:46
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) Игоревна Задания за деньги 16 04.01.2008 17:20
Работа с видео в Visual Prolog Армен Оганезов Prolog 14 13.05.2006 17:16
Работа со строками в Visual Prolog semantics Prolog 4 29.04.2006 13:15



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов