Clarion 11-12

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

finsoftrz писал(а): 10 Октябрь 2020, 21:12 надо только SYSTEM{Prop:CharSet} = CHARSET:CYRILLIC указывать
Указан он у меня. Но не помогает. :(
Если у шрифта ToolTip вообще есть какая-то реакция на настройки, то StatusBar - нет вообще.
Я даже не знаю вообще каким шрифтом StatusBar выводится - похоже это где-то прошито в RTL.
«V» значит Вендетта !
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

В крайнем релизе С11.13630 появились какие-то ограничения на использование BIND()

Этот код вообще без проблем работает уже лет 5 точно ...
Есть BROWSE в котором выводятся по 3 строки в 24 колонках.
ABC шаблоны их зачем-то BIND'яд (и пусть биндяд если им это хочется)
Код сделанный штатным шаблоном ABC без вставок:

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

Loc:Mess             CSTRING(131),DIM(24,3)
  ...
  Code
  ...
  SELF.Errors &= GlobalErrors                        ! Set this windows ErrorManager to the global ErrorManager
  SELF.AutoToolbar = 0
  ! [Priority 5300]
  BIND('Loc:Mess_1_1',Loc:Mess[1,1])                        ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_1_2',Loc:Mess[1,2])                        ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_1_3',Loc:Mess[1,3])                        ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_2_1',Loc:Mess[2,1])                        ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_2_2',Loc:Mess[2,2])                        ! Added by: BrowseBox(ABC)
  ...
  BIND('Loc:Mess_24_1',Loc:Mess[24,1])                     ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_24_2',Loc:Mess[24,2])                     ! Added by: BrowseBox(ABC)
  BIND('Loc:Mess_24_3',Loc:Mess[24,3])                     ! Added by: BrowseBox(ABC)
  ! [Priority 5800]
  ! Initialize the procedure
  CLEAR(GlobalRequest)                                     ! Clear GlobalRequest after storing locally
  ...

Вот где-то на 10-12 BIND() теперь вышибает GPF.
В предыдущем релизе C11 и C63 проблем с такой конструкцией - нет. :(
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

Тут похожее, про массивы в бровзе:
https://clarionhub.com/t/v13640-gpf-v13 ... ode/3580/5
1. The GPF begins with v13622.
2. It involves use of a locally declared array with multiple elements used on the list of an ABC browse.
3. Including more array elements in the list, gives a GPF sooner.
4. A single list is the only control necessary on the window.
5. Array values do NOT need to be assigned.
6. No embed code is necessary.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

Спасибо ! Да, похоже та же самая проблема.
Просто я её немного детализировал - вылет происходит именно на операторе BIND, когда их много.

Пока закостылил и будем ждать исправление (как и многое другое). :)
И надо подумать, где ещё в проектах такое может встречаться ... ;)

P/S: А ещё AnyScreen собираются страждущим продавать ... :facepalm:
«V» значит Вендетта !
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 2576
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion 11-12

Сообщение finsoftrz »

Только очень смелые люди собирают серьезные приложения для продакшена на инструменте, который находится в стадии модификации. Лучше найти стабильную версию, и на ней работать несколько лет. А вспомогательное ПО, не критичное для пользователей, можно пробовать и на последних версиях.
Такая же ситуация и AnyScreen. Никто не собирается переводить критичные приложения на эту схему работы, по крайней мере, пока технология не устаканится. Но AnyScreen это шаг в правильном направлении, пробовать его на вспомогательных приложениях можно уже сейчас.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4143
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Clarion 11-12

Сообщение kreator »

Причём здесь AnyScreen, если ломают работающие сто лет механизмы? Вот раньше была версия "Gold". Мы были уверены, что ошибок и глюков там минимум. Все остальные версии использовались для эксперимента (может для чего другого). Сейчас система сломана. В новом билде можно получить всё, что хочешь. И вот разработчики как дураки ищут стабильно работающий билд. Да чего я говорю, известная проблема. Хотя бы исправления своих глюков выпускали бы каждую неделю.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

kreator писал(а): 17 Октябрь 2020, 13:21 И вот разработчики как дураки ищут стабильно работающий билд.
Стабильно работающий билд - это где все известные проблемы вроде бы закрыты костылями. ;)
И при каждом обновлении надеешься, что хоть какие-то проблемы будут решены.
Ан нет ! Только добавляются новые. :(
kreator писал(а): 17 Октябрь 2020, 13:21 Причём здесь AnyScreen
Я так понимаю, что рука-попные изменения в RTL как раз таки напрямую связаны с подвязкой AnyScreen.
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

В C11.13630 вызов COLORDIALOG ведёт к закрытию программы, без всяких сообщений.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

Возможно при каких-то специфических условиях вызова. У меня все работает штатно.
Такие вызовы используются в десятках мест - проблемы бы давно заметили (и без меня).

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

  If ColorDialog('Выберите цвет',MyField.FontColor,1)
     ...
  end
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

Вызываю так: COLORDIALOG(, rgb)
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

Проверил все варианты - падает только когда последний параметр опущен.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

Не совсем так, падает, если последний параметр опущен или 0.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

Дед Пахом писал(а): 24 Октябрь 2020, 19:06 Вызываю так: COLORDIALOG(, rgb)
Проверил - всё прекрасно работает, проблем нет ...
А какой тип данных Вы передаёте в процедуру ? Я - Long.
«V» значит Вендетта !
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2566
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion 11-12

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

Тоже LONG. Проверил сборки DLL/LIB, не влияют. Вот мой код.

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

  PROGRAM

  MAP
  END

Window                        WINDOW('Updown control demo'),AT(,,191,69),CENTER,GRAY,FONT('Segoe UI',12)
                                PROMPT('Selection color:'),AT(16,18),USE(?lblSelColor),FONT(,9)
                                BUTTON('...'),AT(76,15,14),USE(?bSelColor),FONT(,9)
                                BUTTON('Close'),AT(118,39,46),USE(?bCloe),STD(STD:Close)
                              END

clrSelectedText               SIGNED, AUTO

  CODE
  OPEN(Window)
  ACCEPT
    CASE ACCEPTED()
    OF ?bSelColor
      IF COLORDIALOG('Selected text', clrSelectedText)
!        MESSAGE(clrSelectedText)
      END
    END
  END
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion 11-12

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

А если убрать AUTO ? Там ведь идёт подсветка переданного значения цвета.
И если в ColorDialog передаётся некое ХЗ, то и результат может быть так себе ... ;)

Справка настаивает на варианте:

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

ColorNow LONG
  CODE

  IF NOT COLORDIALOG('Choose Box Color',ColorNow)
    ColorNow = 000000FFh          !Default to Red if user pressed Cancel
  END
«V» значит Вендетта !
Ответить