Перейти к содержанию
Fire Monkey от А до Я

Nick Peterson

Пользователи
  • Постов

    59
  • Зарегистрирован

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения Nick Peterson

  1. Всем привет! Как известно, 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 объекты и интерфейсы?)
  2. Несколько тем похожих, но ни в 1 нет ответа:) Как сделать скриншот формы в физическом разрешении? TForm.PaintTo к сожалению рисует в логическом
  3. Проблема в коде FMX, который не способен справится с нестандартным железом. P.S. Если только у вас масштаб в винде не 100%, тогда возможно у вас просто смещение неверно задано ( +1 не равно 1 физ. пикселю) Проверьте 3 варианта (просто напишите в dpr файле). Как минимум в одном из них у вас будут глюки, тогда зайдите на quality.embarcadero.com и опишите глюк, если не затруднит. Никто этого не делает, воз и ныне там, в новых релизах глюков только больше GlobalUseGPUCanvas := false; // true - проверить так и сяк GlobalUseDirect2D := true; // false - проверить так и сяк Application.Initialize;
  4. Можно, прикладываю. Поставьте в еврике (или FastMM или чем вы пользуетесь?) опцию "Fill released memory with non-zeroes" чтобы сразу увидеть баг. И этот баг - один из множества подобных. И не только подобных)) Если вам никогда не приходилось использовать эврику или другую систему отладки, для вас почти все будет хорошо. Проблемы не видно - значит ее нет:))) "Почти" - потому что, к счастью, FMX дарит и такие глюки, которые видно явно и сразу. Например, ELGridBug.zip
  5. Узнаю в Вас сотрудника Embacaderro, как раз такой подход им и нужен. Кейс заключается вот в этом коде procedure TStyledGrid.HideEditor(const Accept: Boolean); {....} if FInplaceEdit <> nil then FreeAndNil(FInplaceEdit); После которого работает TControl.DoDeactivate с уже удаленным объектом.... Ваш коллега действовал так: - Метод Release больше не используем - да шеф! CTRL-R, Release, Free. - а подумать? - а ну нафит. за подумать тут не платят
  6. Интересно, как вам удается не замечать очевидных багов. Например такой: киньте TStringGrid. Запусти, нажми в ячейку, смени фокус. Наблюдай AV:))) Не видите такого? (P.S. это один из многих, а именно около 25 примеров, известных мне, что там может глючить)
  7. Ошибаетесь в части "вместо действий" Действие тут возможно - зайти на quality.embarcadero.com и описать баг, что я и делаю по мере сил и возможностей. Некоторые баги сами по себе занимают тонну времени, чтобы их найти и описать минимальное демо, например ваш про пошаговое подвисание - у меня такое бывает в Win64 приложении тоже, примерно раз на 100 запусков. Помогает перезапуск студии, даже не представляю, как это отлаживать. А еще последнее время студия (10.2.3) сама собой вылетает, без AV без ничего, просто снимается процесс)) Обычно в начале работы бывает, если первые 10 минут не вылетела то дальше все норм.
  8. так о том и речь вопрос в том, как уволить из embarcadero сотрудников с таким подходом "у меня все гут, значит проблем нет, можно пускать в релиз"
  9. Да хоть два 1) см. первое сообщение этой темы 2) Прикладываю. Угадайте, что на скрине? (подсказка: это панель с TBevelEffect) BevelBug.zip
  10. С одной поправкой - только если железо такое же, как у разработчика FMX
  11. Так а что там читать, просто напишите в dpr файле GlobalUseGPUCanvas := false; GlobalUseDirect2D := true; Application.Initialize; Полагаю, что это не поможет, тогда попробуйте так GlobalUseGPUCanvas := false; GlobalUseDirect2D := false; Application.Initialize; Если это поможет, то дальше надо лезить в исходники FMX.Canvas.D2D.pas ...
  12. А не смущает заливка формы на Вашем скрине? Поздравляю, 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;
  13. Теперь уже я удивляюсь Последний - ну настолько дикий, достаточно всего лишь иметь грид и эврику, и его сразу видно. Просто кинули грид, и вот тебе AV, без единой строчки кода. Существует в 10.2 , в 10.3 в одном месте пофиксили, в другом вылезло))) Платформу делали китайцы за еду натурально, так торопились сдать поскорее и получить паек. Для меня вывод однозначен - очень мало в серьёзных проектах FMX использует, настолько мало, что на quality.embarcadero.com их не видно. Для других, кто пойдет этим путем (перевод приложения с VCL) просьба-совет - Пожалуйста, репортите баги на quality.embarcadero.com, хоть небольшой шанс улучшения ситуации
  14. Что-то пошло не так:) Куда копать? (вдруг кто взглянет на картинку и поймет, мала вероятность конечно, но а вдруг?:)) Затрудняюсь придумать тест кейс для такого. Обычная менюшка, просто на машине одного юзера почему-то не работает. ))
  15. Да тут баг на баге сидит и погоняет Вот еще в духе этой темы: грид, лайвбиндинг.В Grid1HeaderClick выполняем обновление запроса (например, для сортировки). После этого форма перестает реагировать на мышь)) Уже впадлу багрепорты писать, штук 15 настрочил наверное а то и больше Решил пока через таймер...
×
×
  • Создать...