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

Clarion 11-12

Добавлено: 31 Октябрь 2022, 16:01
kreator
Решил в кои-то веки графикой заняться. Ну надо. Вот такая х...:
Images.png
Первое слева фото - обычное (в режиме Stretched, размер меньше реального), второе - оно же (только в режиме Disable), третье - оно же (только в режиме Disable), четвертое - оно же (видно, что картинка ка-то странно растягивается в зависимости от местоположения на экране), пятое - фото в режиме Disable и Centered.
Интересует работа в режиме Disable и Stretched. Можно как-то полечить буйство мыслей и фантазий программеров из SV?
И туда же. Не удаётся в рантайме к Image применить prop:Disable. Удаётся только через prop:Hide.

Clarion 11-12

Добавлено: 31 Октябрь 2022, 16:12
Губин Игорь
А можно проект в студию, чтобы не плодить?

Clarion 11-12

Добавлено: 31 Октябрь 2022, 18:32
kreator
Даже на стандартном превью видно. Ради принципа сделаю.

Big .dct

Добавлено: 03 Ноябрь 2022, 13:39
finsoftrz
Игорь Столяров писал(а): 03 Ноябрь 2022, 13:15
harry писал(а): 03 Ноябрь 2022, 12:31 Т.е. решение только в сокращении количества объектов ?
Видимо да. Я всегда был против левых шаблонов - они сильно закакивают проекты.
Ну и с нетерпением ждём-с обещанный Clarion 12 с генерацией x64 приложений ... :idied:
64 разряда не будет никогда, если RZ продолжить "руководить" процессом разработки. Он на чистом американском сказал, что дорабатывать компилятор нет перспективы (у него в голове, другие спокойно делают 64). Переход на другие готовые компиляторы (голубая мечта RZ в последние 15 лет со времен попытки сделать Clarion.Net) приведет к очень сильным изменениям, что никому не нужно. Теперь речь только о готовом компиляторе c++. Среда, единственное, что принципиально переделали из наследия топспида на "готовое" (sharp developer), работает с кучей багов, исправлять которые никто не собирается. Я такого вообще не понимаю. Дальнейшее развитие клариона будет за счет комьюнити, в котором остаются достаточно компетентные люди, в отличии от SV.
Это для другой темы пост. :-)

Big .dct

Добавлено: 03 Ноябрь 2022, 13:43
Игорь Столяров
finsoftrz писал(а): 03 Ноябрь 2022, 13:39 Это для другой темы пост.
Точно ! Видимо пойдём по пути Clipper: OpenSource, форки от идиотов с кучей ошибок и забвение. :(

Big .dct

Добавлено: 03 Ноябрь 2022, 14:24
finsoftrz
Игорь Столяров писал(а): 03 Ноябрь 2022, 13:43
finsoftrz писал(а): 03 Ноябрь 2022, 13:39 Это для другой темы пост.
Точно ! Видимо пойдём по пути Clipper: OpenSource, форки от идиотов с кучей ошибок и забвение. :(
Опен сорс не надо. Надо постепенно передавать разработку отдельных направлений за пределы sv. Других вариантов не видно. Например, тот же драйвер кит. Все СУБД имеют библиотеки доступа на с++, драйвер кит, как я понимаю, позволяет стандартизировать их вызовы в наборы команд клариона для работы с базами данных. Струменский делал свою реализацию ip драйвера, видимо, где-то удалось получить драйвер кит (его короткое время продавали, насколько знаю). Меня бы в большей степени интересовало исправление багов в среде. Компиляторы 64 бита сейчас уже все популярные среды разработки имеют. Хотя я не думаю, что 32 бита похоронят совсем в ближайшие лет 10.

Clarion 11-12

Добавлено: 05 Ноябрь 2022, 19:46
kreator
Губин Игорь писал(а): 31 Октябрь 2022, 16:12 А можно проект в студию, чтобы не плодить?
Собрал тест. На простом окне четыре одинаковые картинки. Над ними четыре региона. При нажатии мышкой на картинку (регион) картинка дизейблится и наоборот. Если посмотреть эмбедсы, там всё просто - prop:Disable. Только приходится делать через prop:Hide, что тоже косяк (на мой взгляд).

Clarion 11-12

Добавлено: 05 Ноябрь 2022, 19:57
Губин Игорь
finsoftrz писал(а): 03 Ноябрь 2022, 14:24 где-то удалось получить драйвер кит (его короткое время продавали, насколько знаю)
Какая-то старая версия валяется у меня в дистрибутивах...

Clarion 11-12

Добавлено: 05 Ноябрь 2022, 21:33
finsoftrz
Небольшое, но полезное наблюдение. Когда добавляем новый контрол на закладке в оконном дизайнере, чтобы он не улетал на другие закладки или в окно, надо в дереве tab выделить нужную закладку, а потом добавлять. Ставится в конец списка контролов на закладке, но хоть так, чтобы потом долго не таскать по всему дереву.

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 13:36
Губин Игорь
kreator писал(а): 05 Ноябрь 2022, 19:46 Собрал тест. На простом окне четыре одинаковые картинки.
Поигрался в разных вариантах. Да, это глюк рантайма. Единственное, что могу посоветовать - хранить каждую картинку в двух вариантах. И не использовать на Image совершенно бесполезный с точки зрения интерфейса Disable, а подсовывать картинку. Да, я понимаю, что это маразм.

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 14:36
Игорь Столяров
kreator писал(а): 05 Ноябрь 2022, 19:46 Если посмотреть эмбедсы, там всё просто - prop:Disable
Ну, как говорится: если в гору идти не получается - то ведь можно её обойти. ;)
Манипулируем IMAGE прямой записью образа в памяти. В т.ч. и делаем её Grayscale
или мнонхромом любого уровня и т.д. Юзаем библиотеку FreeImage.

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

theImage             FreeImageClass
Loc:TmpString        &STRING
fihMemory       FIMEMORY
mem_buffer      Long
size_in_bytes   UNSIGNED
   Code
   
  If theImage.iImage.Load(MyTheFile) = True
     ! Здесь сохранили в буфер образ "цветной картинки" см. далее
          
     theImage.iImage.ConvertToGrayscale()  ! Конвертация картинки в монохромную
     
     FihMemory = FreeImage_OpenMemory()  ! Запись картинки в буфер
     If FihMemory <> 0
        If FreeImage_SaveToMemory(FIF_BMP, theImage.pImage, fihMemory, 0) = True
           If FreeImage_AcquireMemory(FihMemory, mem_buffer, size_in_bytes) = True
              If size_in_bytes > 0
                 Loc:TmpString &= New(String(size_in_bytes))
                 If ~(Loc:TmpString &= Null) then WinApi_memcpy(Address(Loc:TmpString),mem_buffer,size_in_bytes).
              end
           end
        end

        FreeImage_CloseMemory(FihMemory)
     else
        theImage.iImage.TakeError(OUT_OF_MEMORY)
     end

     ! Запись буфера с картинкой в IMAGE
     If ~(Loc:TmpString &= Null) then ?Image{Prop:ImageBits} = Loc:TmpString.
     ....
  end   
И всё. Дальше просто меняем цветной образ на монохром и т.д. Ну и в завершении очистить память.

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 15:55
kreator
Это фото сотрудников, к которым у разработчиков нет доступа. Объяснять пользователю, который загружает фото в систему, что надо бы загрузить два фото, и одно из них надо графическим редактором подработать, мягко говоря нехорошо.
Использовать FreeImage вариант. Но небось подводных камней насобираешь. Чёрно-белая картинка при такой конвертации становится "серой"?
Игорь Губин, может зашлём проблему в SV? Чего сидят, ничего не делают?

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 16:05
Губин Игорь
kreator писал(а): 06 Ноябрь 2022, 15:55 Чего сидят, ничего не делают?
Можно попробовать. Постараюсь не затягивать. Но, имхо, безнадёга это. Явно слишком глубоко в рантайме сидит глюк, да и не критичный.
kreator писал(а): 06 Ноябрь 2022, 15:55 Объяснять пользователю, который загружает фото в систему
Честно сказать, я бы, при такой ситуации, обошёл бы ошибку онанизмом преобразования загружаемой картинки во второй экземпляр для disable через перехват экрана через WinAPI. Ну или наложением маски (сеточка или ещё что) вместо перевода в disable. Будет быстрее.

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 16:09
Губин Игорь
Губин Игорь писал(а): 06 Ноябрь 2022, 16:05 Чего сидят, ничего не делают?
Хочешь поржать? Под AnyScreen всё идеально работает.

Clarion 11-12

Добавлено: 06 Ноябрь 2022, 16:23
Игорь Столяров
kreator писал(а): 06 Ноябрь 2022, 15:55 Чёрно-белая картинка при такой конвертации становится "серой"?
Загрузив картинку в FreeImage Вы сможете переключать в ней если не всё, то многое.
Контрастность, яркость, гамма-коррекцию ... Можно сделать оригинально и стильно. ;)