Popup - продолжить изменение

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Popup - продолжить изменение

Сообщение gopstop2007 »

Через popup вывожу список с чекетами, например как на рис.,
Нужно, чтобы при открытии и выборе чекета сделать множественный выбор без закрытия popup-a.
Вложения
c_checked.jpg
c_checked.jpg (5.61 КБ) 1810 просмотров
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Popup - продолжить изменение

Сообщение Дед Пахом »

По-моему, это невозможно.
С уважением, ДП
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Popup - продолжить изменение

Сообщение Admin »

Скорее всего, возможно только в случае ручного рисования popup через API
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Popup - продолжить изменение

Сообщение Губин Игорь »

открыть снова?
Это я только кажусь дураком! На самом деле я полный идиот!
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Popup - продолжить изменение

Сообщение gopstop2007 »

Губин Игорь писал(а): 01 Июль 2018, 17:21 открыть снова?
так и делаю, может есть другое решение? :cat:
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Popup - продолжить изменение

Сообщение Губин Игорь »

gopstop2007 писал(а): 01 Июль 2018, 17:34так и делаю, может есть другое решение?
Стандартными для Клариона, если верить документации - нет. Кроме выпадения меню, всё остальное ведёт к закрытию и обработке.
Надо учитывать, что PopUp возвращает только одно значение
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Popup - продолжить изменение

Сообщение kreator »

ИМХО, при использовании попап в таком виде страдает юзабилити. Окно настроек должно иметь кнопки ОК и неОК. Поэтому я бы заменил бы обычным окном. Ещё вариант как сделано в IBExpert'е. Есть вызов подобного попап меню с несколькими чекам, срабатывает как положено, меню закрывается при однократном выборе. Но последним пунктом в меню, ниже все чеков, является "Customize", при нажатии на который вызывается обычное окно настроек с этими же самыми чеками. Правда там единственная кнопка "Close". Эксперт написан на Дельфи. Наверно нет такого АПИ, чтобы сделать множественный выбор, раз Дельфи не может. Может Дельфи и не показатель.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Popup - продолжить изменение

Сообщение Игорь Столяров »

Ну, как говориться, если нет счастья в жизни - то надо его хотя бы иногда имитировать … ;)

Нет никаких проблем нарисовать окно без заголовка и рамки, выставить его координаты и размер при открытии.
В окне нарисовать OPTION BOX / BUTTON (в т.ч. и динамически), обработать пукты с нужным функционалом, в т.ч. и множественный выбор.
Получится даже намного красивее, чем стандартный POPUP, оформительские возможности которого застряли в интерфейсе Win3.1
Последний раз редактировалось Игорь Столяров 02 Июль 2018, 13:24, всего редактировалось 2 раза.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Popup - продолжить изменение

Сообщение Admin »

Андрей Попов в свое время делал полностью кастомную отрисовку popup через API.
Было помнится в CFC_Library. Можно там покопаться.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Popup - продолжить изменение

Сообщение gopstop2007 »

Admin писал(а): 02 Июль 2018, 8:34 Андрей Попов в свое время делал полностью кастомную отрисовку popup через API.
Было помнится в CFC_Library. Можно там покопаться.
Интересно, посмотрю.
Можно было бы сделать в PopUp Multiselect = true (false - по умолчанию), но видать не сильно всем нужно :)
Пока обхожусь таким способом, правда моргает popup, примерно так:

Код: Выделить всё

MyRoutine	ROUTINE
    l_popupcycle = 0
    IF NOT SET:PopupFontsSize THEN SET:PopupFontsSize = 10 END
    pstr" = PROP:FontSize &'('& SET:PopupFontsSize * 1.2 &'),'& PROP:FontCharSet &'('&CHARSET:CYRILLIC

     PopupRefers.Init()   
     PopupRefers.AddItem('['& PROP:Icon & CHOOSE(l_Check=1,'(check.ico),','(Uncheck.ico),')& CLIP(pstr") &')]Check/Uncheck','CheckUncheck')

     IF GetWindowRect(?MyButton{Prop:Handle},address(loc:Rect)) THEN  PopSelectedItem=PopupRefers.Ask(loc:Rect.rLeft,loc:Rect.rBottom) END

     CASE PopSelectedItem  !проверка выбора пункта меню
     OF 'CheckUncheck
         l_Check = 1 - l_Check
         DO MyCode  
         l_popupcycle = 1
     END
        
    PopupRefers.Kill

    IF l_popupcycle THEN DO MyRoutine END
Спасибо всем.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить