-
Постов
59 -
Зарегистрирован
-
Посещение
Посетители профиля
Блок последних пользователей отключён и не показывается другим пользователям.
Достижения Nick Peterson
-
Всем привет! Как известно, FMX сама не может справится с ошибками dxgi Что я пытался сделать: 1) в FMX.Canvas.D2D ведем список Canvases: TList<TCanvasD2D>; 2) после получения ошибки пытаемся пересоздать ресурсы таким образом procedure ResetDxEngine; var c: TCanvasD2D; begin for c in Canvases do c.DisposeResources; TCanvasD2D.DestroySharedResources; TCanvasD2D.CreateSharedResources; for c in Canvases do c.CreateResources; end; Это не срабатывает, канва перестает что-либо рисовать. Что я упускаю? (Сознательно сократил коды чтобы передать максимально суть вопроса - как правильно пересоздать DirectX объекты и интерфейсы?)
-
Nick Peterson изменил фотографию своего профиля
-
Несколько тем похожих, но ни в 1 нет ответа:) Как сделать скриншот формы в физическом разрешении? TForm.PaintTo к сожалению рисует в логическом
-
Mars M отреагировал на сообщение в теме: Перевод VCL приложения на FMX. Подводные камни, стоит ли?
-
Владимир Б. отреагировал на ответ на вопрос: TMemo для вывода лога тормозит
-
Проблема в коде FMX, который не способен справится с нестандартным железом. P.S. Если только у вас масштаб в винде не 100%, тогда возможно у вас просто смещение неверно задано ( +1 не равно 1 физ. пикселю) Проверьте 3 варианта (просто напишите в dpr файле). Как минимум в одном из них у вас будут глюки, тогда зайдите на quality.embarcadero.com и опишите глюк, если не затруднит. Никто этого не делает, воз и ныне там, в новых релизах глюков только больше GlobalUseGPUCanvas := false; // true - проверить так и сяк GlobalUseDirect2D := true; // false - проверить так и сяк Application.Initialize;
-
Можно, прикладываю. Поставьте в еврике (или FastMM или чем вы пользуетесь?) опцию "Fill released memory with non-zeroes" чтобы сразу увидеть баг. И этот баг - один из множества подобных. И не только подобных)) Если вам никогда не приходилось использовать эврику или другую систему отладки, для вас почти все будет хорошо. Проблемы не видно - значит ее нет:))) "Почти" - потому что, к счастью, FMX дарит и такие глюки, которые видно явно и сразу. Например, ELGridBug.zip
-
Узнаю в Вас сотрудника Embacaderro, как раз такой подход им и нужен. Кейс заключается вот в этом коде procedure TStyledGrid.HideEditor(const Accept: Boolean); {....} if FInplaceEdit <> nil then FreeAndNil(FInplaceEdit); После которого работает TControl.DoDeactivate с уже удаленным объектом.... Ваш коллега действовал так: - Метод Release больше не используем - да шеф! CTRL-R, Release, Free. - а подумать? - а ну нафит. за подумать тут не платят
-
Ошибаетесь в части "вместо действий" Действие тут возможно - зайти на quality.embarcadero.com и описать баг, что я и делаю по мере сил и возможностей. Некоторые баги сами по себе занимают тонну времени, чтобы их найти и описать минимальное демо, например ваш про пошаговое подвисание - у меня такое бывает в Win64 приложении тоже, примерно раз на 100 запусков. Помогает перезапуск студии, даже не представляю, как это отлаживать. А еще последнее время студия (10.2.3) сама собой вылетает, без AV без ничего, просто снимается процесс)) Обычно в начале работы бывает, если первые 10 минут не вылетела то дальше все норм.
-
так о том и речь вопрос в том, как уволить из embarcadero сотрудников с таким подходом "у меня все гут, значит проблем нет, можно пускать в релиз"
-
Да хоть два 1) см. первое сообщение этой темы 2) Прикладываю. Угадайте, что на скрине? (подсказка: это панель с TBevelEffect) BevelBug.zip
-
С одной поправкой - только если железо такое же, как у разработчика FMX
-
Так а что там читать, просто напишите в dpr файле GlobalUseGPUCanvas := false; GlobalUseDirect2D := true; Application.Initialize; Полагаю, что это не поможет, тогда попробуйте так GlobalUseGPUCanvas := false; GlobalUseDirect2D := false; Application.Initialize; Если это поможет, то дальше надо лезить в исходники FMX.Canvas.D2D.pas ...
-
А не смущает заливка формы на Вашем скрине? Поздравляю, FMX на вашей системе нормально работать не будет (у моих пользователей так бывает, единственное решение которое я нашел - играть с GlobalUseDirect2D := false). Еще нужно обновить драйвера видяхи, но думаю Вы это и так сделали GlobalUseGPUCanvas тоже может помочь, но вызывает столько новых багов, что лучше не пробовать даже. А так, вообще, если у вас видяха такая же, как у разработчика FMX, то ничего не троит procedure TForm24.Timer1Timer(Sender: TObject); begin Circle1.Position.X := Circle1.Position.X + 1; Circle1.Position.Y := Circle1.Position.Y + 1; end;
-
Теперь уже я удивляюсь Последний - ну настолько дикий, достаточно всего лишь иметь грид и эврику, и его сразу видно. Просто кинули грид, и вот тебе AV, без единой строчки кода. Существует в 10.2 , в 10.3 в одном месте пофиксили, в другом вылезло))) Платформу делали китайцы за еду натурально, так торопились сдать поскорее и получить паек. Для меня вывод однозначен - очень мало в серьёзных проектах FMX использует, настолько мало, что на quality.embarcadero.com их не видно. Для других, кто пойдет этим путем (перевод приложения с VCL) просьба-совет - Пожалуйста, репортите баги на quality.embarcadero.com, хоть небольшой шанс улучшения ситуации
-
Abstract error в FMX.Types3D.TContextManager.CreateFromTexture
Nick Peterson опубликовал вопрос в Графика
Что-то пошло не так:) Куда копать? (вдруг кто взглянет на картинку и поймет, мала вероятность конечно, но а вдруг?:)) Затрудняюсь придумать тест кейс для такого. Обычная менюшка, просто на машине одного юзера почему-то не работает. )) -
Да тут баг на баге сидит и погоняет Вот еще в духе этой темы: грид, лайвбиндинг.В Grid1HeaderClick выполняем обновление запроса (например, для сортировки). После этого форма перестает реагировать на мышь)) Уже впадлу багрепорты писать, штук 15 настрочил наверное а то и больше Решил пока через таймер...