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

Перевод VCL приложения на FMX. Подводные камни, стоит ли?


Рекомендуемые сообщения

26 минут назад, #WAMACO сказал:

у меня все отлично!  

Что значит " у меня " ?)) И при чем тут состояния? в проекте нет ни 1 строки кода, на форме ни одно состояние не тронуто, все дефолтное (кроме свойста StaysPressed). Немного не понял, что Вы имели в виду - если допустить, что баг существует, как именно его можно поправить при помощи модели (в данном тестовом примере)? У меня пока не получилось найти решения.

Баг существует на 10.2.3 и 10.3, более ранних версий нет под рукой

Изменено пользователем Nick Peterson
Ссылка на комментарий

Хм. Сорри. Проблема есть. Но только на дефолтном стиле. Если загрузить какой-то стиль - проблема исчезает. Так что проблема не в FMX а в дефолтном стиле.

Ссылка на комментарий
38 минут назад, Nick Peterson сказал:

Что значит " у меня " ?

Беру ваш пример, запускаю вашей проблемы нет 10.1.2 

Изменено пользователем GASCHE
Ссылка на комментарий
35 минут назад, dnekrasov сказал:

Проблема есть. Но только на дефолтном стиле. Если загрузить какой-то стиль - проблема исчезает. Так что проблема не в FMX а в дефолтном стиле.

Точно, спс! Этого я проверить не сообразил, уже легче

Ссылка на комментарий
  • 1 месяц спустя...
В 11.12.2018 в 18:18, #WAMACO сказал:

не знаю, что у вас там глючит. скиньте проект, для удивления этому всему!

Теперь уже я удивляюсь

image.png.c5814c09cb27eac8214191a15c3ea067.png

 

Последний - ну настолько дикий, достаточно всего лишь иметь грид и эврику, и его сразу видно. Просто кинули грид, и вот тебе AV, без единой строчки кода. Существует в 10.2 , в 10.3 в одном месте  пофиксили, в другом вылезло)))

Платформу делали китайцы за еду натурально, так торопились сдать поскорее и получить паек.

Для меня вывод однозначен - очень мало в серьёзных проектах FMX использует, настолько мало, что на quality.embarcadero.com их не видно.

Для других, кто пойдет этим путем (перевод приложения с VCL)

просьба-совет - Пожалуйста, репортите баги на quality.embarcadero.com,  хоть небольшой шанс улучшения ситуации

 

Ссылка на комментарий
22 часа назад, Nick Peterson сказал:

Платформу делали китайцы за еду натурально, так торопились сдать поскорее и получить паек.

Платформу делал наш соотечественник Женька, который настолько увлекся стилями, что полностью погряз в их хитросплетениях, полностью игнорируя реальные нужды разработчиков, в результате чего мы имеем то что имеем))

Можно смело утверждать, что именно эта чрезмерно замудреная стилизация и не сделала из fmx, настоящий кроссплатформенный фреймворк уровня "ready for real production"

Про покрытие нового функционала полноценными тестами, он тоже, очевидно ни сном ни духом, - код запустился - и это уже здорово, можно в релиз!

Особо печально, что даже такой отличный программист как Ярослав, не смог повлиять на ситуацию, ибо проблема как раз в архитектуре и базе UI fmx - этих пресловутых стилях.

Кстати, даже после ухода из emb, автор fmx до сих пор в со-компании, стругает-обновляет стили пачками.

p.s. Тем паче обидно наблюдать за набирающим обороты Flutter - который исповедуют тот же принцип что и fmx - собственная отрисовка ui на каждой платформе, и где все работает даже быстрее нативных компонентов. А многие кстати говорили, что это невозможно, что мол проблема НЕ в кривой архитектуре fmx (как писал я), а именно в непосильной задаче - ну вот получите Flutter с его многоэтажными вложениями,  и прочими фигурами, но РАБОТАЕТ же, а ведь и Delphi мог быть на его месте и даже выше, эх.............

Изменено пользователем Sergionn
Ссылка на комментарий

FMX так и умер не влетев. В 10.3 ещё больше проблем, чем в 10.2, в 10.2 чем в 10.1.Хотя и 10.1 не возможно было использовать в продакшене. Ждём сейчас FGX. Уж очень интересно попробовать единую кодовую базу с VCL иметь, и что бы это в продакшене могло работать. Хотя с учётом того, что бетку обещали ещё в начале осени, а до сих пор идёт закрытое тестирование, то по ходу шансов заполучить что-то рабочее в ближайшее время не много.
 

Ссылка на комментарий
19 часов назад, Akad сказал:

FMX так и умер не влетев. В 10.3 ещё больше проблем, чем в 10.2, в 10.2 чем в 10.1.Хотя и 10.1 не возможно было использовать в продакшене. 
 

Хммм... не очень понятно, что у Вас там в продакшене...  у нас все работает тип-топ и все рады! и не один проект!

может это не ваше?

Ссылка на комментарий
1 час назад, #WAMACO сказал:

у нас все работает тип-топ и все рады! и не один проект! 

Интересно, как вам удается не замечать очевидных багов. Например такой: киньте TStringGrid. Запусти, нажми в ячейку, смени фокус. Наблюдай AV:))) Не видите такого? (P.S. это один из многих, а именно около 25 примеров, известных мне, что там может глючить)

Ссылка на комментарий
1 час назад, Nick Peterson сказал:

Интересно, как вам удается не замечать очевидных багов. Например такой: киньте TStringGrid. Запусти, нажми в ячейку, смени фокус. Наблюдай AV:))) Не видите такого? (P.S. это один из многих, а именно около 25 примеров, известных мне, что там может глючить)

Сейчас проверил Ваш кейс! Нет такого! Не пудрите людям мозг!

Ссылка на комментарий
3 часа назад, #WAMACO сказал:

Хммм... не очень понятно, что у Вас там в продакшене...  у нас все работает тип-топ и все рады! и не один проект!

может это не ваше?

Я за ~полгода поправил кучу ошибок разработчиков FMX, многие из которых, кстати, до сих пор в основной поставке остались. Это были как просто глюки с отрисовкой/перерисовкой, так и утечки памяти и AV из-за того, что долбики сначала убивали что-то а потом из другого места с нему лезли. Качество кода говорит о том, что его писали программисты, получавшие за свою работу в пределах $500-800. Т.е. кого эмба за 3 копейки нашла, того и наняла. Ну они на 3 копейки и нарабатывали, так что тут всё чётко, ни каких претензий. Надо было сразу внимательно код смотреть. В Борланде были высококлассные спецы, я к этому привык... Ну даладно.

Затем впёрся в AV после закрытия формы с браузером. Даже здесь просил помощи, но ни кто ничего не подсказал. Так как программа является частью CRM по доставке еды, и браузер с картой - это очень важная её часть, все было переписано на VCL. Использование FMX было заложено что бы сделать ещё 5 приложений на единой кодовой базе под андроид/яос. Но после первого из них стало понятно, что FMX очень тяжёлый, и на целевых телефонах - телефонах наших курьеров банально нет под это приложение столько памяти. Поэтому эти проекты были свёрнуты после первых испытаний.

Надеюсь донёс свою точку зрения. И кто-нибудь прочитав этот пост не совершит мою ошибку, и обойдёт FMX стороною. Повторюсь VCL стабильна. Но её писала не Эмба.Да и стандартных компонент из поставки думаю ни только мы, а вообще ни кто не использует. Практически всегда есть бесплатный и более качественный аналог.
 

Ссылка на комментарий
1 час назад, Akad сказал:

Я за ~полгода поправил кучу ошибок разработчиков FMX, многие из которых, кстати, до сих пор в основной поставке остались. Это были как просто глюки с отрисовкой/перерисовкой, так и утечки памяти и AV из-за того, что долбики сначала убивали что-то а потом из другого места с нему лезли.

ну так поделитесь исправленными модулями с общественностью.

Ссылка на комментарий
3 часа назад, #WAMACO сказал:

Сейчас проверил Ваш кейс! Нет такого! Не пудрите людям мозг!

Узнаю в Вас сотрудника Embacaderro, как раз такой подход им и нужен.

Кейс заключается вот в этом коде

procedure TStyledGrid.HideEditor(const Accept: Boolean);
{....}
  if FInplaceEdit <> nil then
          FreeAndNil(FInplaceEdit);

После которого работает  TControl.DoDeactivate с уже удаленным объектом....

Ваш коллега действовал так:

- Метод Release больше не используем

 - да шеф! CTRL-R, Release, Free.

- а подумать? - а ну нафит. за подумать тут не платят

 

Ссылка на комментарий
9 часов назад, Nick Peterson сказал:

Узнаю в Вас сотрудника Embacaderro, как раз такой подход им и нужен.

у меня тоже нет никакой ошибки на рио. пример с ошибкой можно?

Ссылка на комментарий
6 часов назад, haword сказал:

у меня тоже нет никакой ошибки на рио. пример с ошибкой можно?

Можно, прикладываю.

Поставьте в еврике (или FastMM или чем вы пользуетесь?) опцию "Fill released memory with non-zeroes" чтобы сразу увидеть баг.

И этот баг - один из множества подобных. И не только подобных)) Если вам никогда не приходилось использовать эврику или другую систему отладки, для вас почти все будет хорошо. Проблемы не видно - значит ее нет:)))

"Почти" - потому что, к  счастью, FMX дарит и такие глюки, которые видно явно и сразу. Например,

 

ELGridBug.zip

Изменено пользователем Nick Peterson
Ссылка на комментарий
20 часов назад, haword сказал:

ну так поделитесь исправленными модулями с общественностью.

А тут уже была такая тема, можно поискать, я туда тоже что-то постил. Но судя по активности и лайкам она тутошним не зашла.
 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...