Важно (9.07.22)

Если картинки в постах не отображаются, зайдите в блог через прокси. РКН заблокировал поддомены blogger.com на которые загружались картинки.

воскресенье, 20 апреля 2014 г.

Что нового в Delphi XE6 или некоторые из изменений…

Решил проверить все статьи на совместимость с Delphi XE6, в итоге 5 статей и вот какие изменения (включая баги/ошибки/странное поведение) я заметил. Т.к. статей около 40 штук, то этот пост будет обновляться, по мере продвижения по статьям.

upd (26.04.14). Судя по всему, один из багов не совсем пофиксили...(подробности в конце)
upd (26.04.14). Вышел "Hotfix 1 for RAD Studio, Delphi, C++Builder XE6"


Где посмотреть список всех изменений в XE6: http://docwiki.embarcadero.com/RADStudio/XE6/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE6

Изменения в IDE:
  • При открытии проекта из Delphi XE5 в XE6, сбрасываются некоторые свойства. В частности свойства для работы с текстом. Например: Если у вас на форме есть "Label" со свойством "AutoSize: True", то в XE6 необходимо обновить свойство "TextSettings->Trimming: None", иначе текст в "Label" будет обрезаться и заменяться на троеточие.
  • Для старых проектов (из Delphi XE5), иногда требуется добавить "-cleaninstall" в меню "Run -> Parameters:Parameters".
  • В окне "Project->Options->Version Info(Android)" добавили новый параметр для аппаратного ускорения, подробности описал в заметке Delphi XE5/XE6 - Project->Options->Version Info(Android)
  • По умолчанию на Android подгружается стиль для версии 4.4 (кнопки и т.п. выделяются серым цветом, а не синим как раньше).
  • Mobile Preview – произошли серьёзные изменения. Хотя в справке так и висит старый скриншот. Вот вам сравнение:
Было:


Стало:


В новой справке висит старый скриншот: http://docwiki.embarcadero.com/RADStudio/XE6/en/Mobile_Preview


Изменения в Androidapi.JNI:
  • "JStringToString" - из "Androidapi.JNI.JavaTypes.pas" в "Androidapi.Helpers.pas"
  • "StringToJString" - из "Androidapi.JNI.JavaTypes.pas" в "Androidapi.Helpers.pas"
  • "StrToJURI" - из "FMX.Helpers.Android.pas" в "Androidapi.Helpers.pas

Далее изменились названия некоторых свойств и значений:
Тут обычно Warning’и выскакивают и подсказывают где и что надо заменить, но на всякий случай, некоторые из изменений:
  • "TVKAutoShowMode.vkasAlways" замена на "TVKAutoShowMode.Always"
  • "TAlignLayout.alClient" замена на "TAlignLayout.Client"
  • "TAlignLayout.alHorizontal" замена на "TAlignLayout.Horizontal"
  • "TVirtualKeyBoardState.vksVisible" замена на "TVirtualKeyBoardState.Visible"

Теперь баги/ошибки/странное поведение/странные изменения (сравнение XE6 с XE5):

1) Анимация для смены позиции(Position.X и Position.Y) ListBoxItem больше не работает. В Delphi XE5 Update 2 работала отлично. Оказалось, это не ошибка, ошибка была в XE5, а теперь работает как надо..

2) NEW Проверял приложение из статьи Пишем свой файловый менеджер для Android, #2:
ListBox - дёргается скролл. Скролл не обнуляет свою позицию при удалении и добавлении ListBoxItem. 
Баги со скроллом совсем заметные, от простого прикосновения к ListBox, скролл начинает плющить. Может, забыли протестировать ListBox?

Обе ошибки, легко воспроизводятся на чистых проектах.

Видео, демонстрирующее данные ошибки, на превью не обращайте внимания, это заскоки ютуба:

3) Исправили баг с переносом в TMemo, подробности тут "Баги/фичи в Delphi XE5 на Android #1" (3 пункт) Спасибо!

4) upd (24.04.14).  Сегодня один из читателей блога сообщил, что баг с запуском приложений, использующих SQL (dbExpress), «не совсем пофиксили». Комментарий читателя можно посмотреть тут: http://delphifmandroid.blogspot.com/2014/03/blog-post.html?showComment=1398326820337#c2504821327131583082
Важно заметить, что данный баг проявлялся в Delphi XE5 Update 2, на моём приложении, а также на стандартной демке (SQLite), Android 2.3.3-2.3.6.
К сожалению, у меня пока не будет возможности проверить самому этот баг, поэтому надеюсь на вашу помощь. Необходимо запустить два приложения (стандартную демку SQLite и моё приложение из статьи) на Android 2.3.3-2.3.6. Буду очень благодарен за помощь. О результатах отпишитесь в комменты.




p.s. Если вы считаете пост не несущим ни какого смысла, напишите об этом в комменты.
p.s.2 Есть что добавить? Пишите в комменты.