Страница 42 из 158

Clarion 11-12

Добавлено: 10 Октябрь 2020, 21:24
Игорь Столяров
finsoftrz писал(а): 10 Октябрь 2020, 21:12 надо только SYSTEM{Prop:CharSet} = CHARSET:CYRILLIC указывать
Указан он у меня. Но не помогает. :(
Если у шрифта ToolTip вообще есть какая-то реакция на настройки, то StatusBar - нет вообще.
Я даже не знаю вообще каким шрифтом StatusBar выводится - похоже это где-то прошито в RTL.

Clarion 11-12

Добавлено: 16 Октябрь 2020, 22:54
Игорь Столяров
В крайнем релизе С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 проблем с такой конструкцией - нет. :(

Clarion 11-12

Добавлено: 16 Октябрь 2020, 23:30
Дед Пахом
Тут похожее, про массивы в бровзе:
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.

Clarion 11-12

Добавлено: 17 Октябрь 2020, 6:30
Игорь Столяров
Спасибо ! Да, похоже та же самая проблема.
Просто я её немного детализировал - вылет происходит именно на операторе BIND, когда их много.

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

P/S: А ещё AnyScreen собираются страждущим продавать ... :facepalm:

Clarion 11-12

Добавлено: 17 Октябрь 2020, 9:18
finsoftrz
Только очень смелые люди собирают серьезные приложения для продакшена на инструменте, который находится в стадии модификации. Лучше найти стабильную версию, и на ней работать несколько лет. А вспомогательное ПО, не критичное для пользователей, можно пробовать и на последних версиях.
Такая же ситуация и AnyScreen. Никто не собирается переводить критичные приложения на эту схему работы, по крайней мере, пока технология не устаканится. Но AnyScreen это шаг в правильном направлении, пробовать его на вспомогательных приложениях можно уже сейчас.

Clarion 11-12

Добавлено: 17 Октябрь 2020, 13:21
kreator
Причём здесь AnyScreen, если ломают работающие сто лет механизмы? Вот раньше была версия "Gold". Мы были уверены, что ошибок и глюков там минимум. Все остальные версии использовались для эксперимента (может для чего другого). Сейчас система сломана. В новом билде можно получить всё, что хочешь. И вот разработчики как дураки ищут стабильно работающий билд. Да чего я говорю, известная проблема. Хотя бы исправления своих глюков выпускали бы каждую неделю.

Clarion 11-12

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

Clarion 11-12

Добавлено: 24 Октябрь 2020, 16:42
Дед Пахом
В C11.13630 вызов COLORDIALOG ведёт к закрытию программы, без всяких сообщений.

Clarion 11-12

Добавлено: 24 Октябрь 2020, 19:04
Игорь Столяров
Возможно при каких-то специфических условиях вызова. У меня все работает штатно.
Такие вызовы используются в десятках мест - проблемы бы давно заметили (и без меня).

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

  If ColorDialog('Выберите цвет',MyField.FontColor,1)
     ...
  end

Clarion 11-12

Добавлено: 24 Октябрь 2020, 19:06
Дед Пахом
Вызываю так: COLORDIALOG(, rgb)

Clarion 11-12

Добавлено: 24 Октябрь 2020, 19:09
Дед Пахом
Проверил все варианты - падает только когда последний параметр опущен.

Clarion 11-12

Добавлено: 24 Октябрь 2020, 19:13
Дед Пахом
Не совсем так, падает, если последний параметр опущен или 0.

Clarion 11-12

Добавлено: 24 Октябрь 2020, 19:34
Игорь Столяров
Дед Пахом писал(а): 24 Октябрь 2020, 19:06 Вызываю так: COLORDIALOG(, rgb)
Проверил - всё прекрасно работает, проблем нет ...
А какой тип данных Вы передаёте в процедуру ? Я - Long.

Clarion 11-12

Добавлено: 24 Октябрь 2020, 20: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

Clarion 11-12

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

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

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

ColorNow LONG
  CODE

  IF NOT COLORDIALOG('Choose Box Color',ColorNow)
    ColorNow = 000000FFh          !Default to Red if user pressed Cancel
  END