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

haword

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

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

  • Посещение

  • Победитель дней

    19

Весь контент haword

  1. шрифт в листвью может попробовать другой поставить?
  2. не скажи. на 7 делфи можно было писать код для CLX и он работал. этот же код просто перекомпилируешь под Kylix и он работал. мне нравилось. а внутрь реализации FMX не смотрел? там тоже много чего реализовано на сообщениях - TMessage используется очень часто. Все проблемы решаемы. И костыли так же. За то проблем с переходом бы не было, а это огромный плюс к развитию платформы. А это новые компоненты и так далее. Да и херн с этими TMessage, можно же было реализовать СОВМЕСТИМЫЕ параметры и методы? МОЖНО! Сделали? НЕТ! да и что дал подход нового фреймворка? НИЧЕГО!! Под FMX за все время его существования написано столько компонентов что их можно просто по пальцам пересчитать!!! за 5 лет существования!!! А если бы людям не пришлось с нуля переписывать свои программы тогда как бы это все обернулось? Тогда бы новая платформа получила свою путевку в жизнь. Все зависит от популярности продукта. Когда продукт малопопулярен он долго не живет. Да и этот подход использован в Лазаре, да они правят косяки НО один и тот же код работает везде и при этом по максимуму совместим с Делфи. При этом интерфейсы были реализованы и для QT и для GTK1 и GTK2 и Cocoa и были попытки под Android сделать. При этом все это делалось на голом энтузиазме.
  3. Изначально мне не понравилось в fmx то что он не был совместим с vcl никак. То есть разработка ПО на fmx это равносильна разработке нового ПО на новой оболочке. Зачем сделали новые компоненты не совместимые со старыми добрыми датасетами и датасоурсами и перешли на ливбилдинг? То есть хотели хорошо а сделали как обычно через жопу. Что трудно было оставить и то и добавить новое а так же большинство параметров сделать совместимыми не обзывая одно и то же разными названиями? Главный упор надо было делать на tcanvas и его совместимость с vcl. Как в свое время делали на clx. Вот там перенос компонентов занимало минимум времени и работало на линуксе. Вот и выход же. Многие свои компоненты перенесли бы на fmx тогда если бы база была совместимой. То есть если бы был гибрид clx fmx совместимый с vcl тогда бы все намного лучше взлетело бы! Это же простые истины программиста - работает НЕ ТРОГАЙ!!! Работают все на vcl так сделай совместимым с ним прокладку под другие платформы и будет счастье, так нет же, на те вам не совместимый продукт, пользуйтесь, радуйтесь. Не перешли на него и не стали переписывать все свое по заново? Ишь какие плохие программисты. Не хотят с нуля все переписывать. А вообще линукс для делфей несчастливая платформа. В 7 сделали, работало!!! Борланд накрылась. В сиетле сделали вроде все работает под андроидом замечательно, анонсировали переход под линукс и писец, контора начала разваливаться, всех поувольняли.
  4. а вот если не грохать в потоке то будут глюки. на другом моем аппарате с 6 андроидом такого нет. показывает все отлично без глюков и без потока.
  5. да. освобождаю память. и создается он только тогда когда он не был создан. то есть один раз всего при показе когда поток не грохает его.
  6. хз. если запущен поток очищающий картинки то никаких глюков нет сколько бы картинок не грузил. если поток не запущен то примерно после 100 начинаются глюки. а загрузка из БД обычная. procedureUpdateItemImage(AItem: TListViewItem); .... bmp:= TBitmap.Create; q:= TFDQuery.Create(nil); q.Connection:= dm.DBCon; q.SQL.Text:= 'select im.Image ' + ' from imagestorecipe itr ' + ' left join images im on' + ' im.imageId = itr.imageId' + ' where' + ' itr.recipeId = ' + IntToStr(AItem.Data['r_id'].AsInteger); try q.open; except end; if not q.Eof then begin BlobStream := q.CreateBlobStream(q.FieldByName('Image'),TBlobStreamMode.bmRead); try bmp.LoadFromStream(BlobStream); if bmp.Height > bmp.Width then bmp.Rotate(90); FitRect := TRectF.Create(0, 0, bmp.Width, bmp.Height); FitRect := FitRect.FitInto(TRectF.Create(0, 0, 80, 40)); AItem.Bitmap:=TBitmap.Create; AItem.Bitmap.Width:=80; AItem.Bitmap.Height:=40; AItem.Bitmap.Clear(TAlphaColors.Null); if not bmp.IsEmpty and AItem.Bitmap.Canvas.BeginScene then try AItem.Bitmap.Canvas.DrawBitmap(bmp, TRectF.Create(0, 0, bmp.Width, bmp.Height), FitRect, 1); finally AItem.Bitmap.Canvas.EndScene; end; finally BlobStream.free; end; end; bmp.free; q.Free;
  7. проблема не в том что битмапы не очищаются при очистке ListView, проблема при добавлении картинок в уже готовый список. Может конечно и дело в коде но код такой, при добавлении картинки если она не была загружена считываю картинку с БД, уменьшаю до маленького размера, делаю ListViewItem.Bitmap:=TBitmap.Create далее в него загружаю эту картинку и так далее. и при пролистывании около 100 картинок лезли глюки, даже если я не изменял количество итемов в ListView. Просто скролил вниз список. Было ощущение что где то лез out of memory и это вызывало глюки отображения. Пришлось ваять поток отдельный который будет бегать по списку добавленных ListViewItem и проверять видим ли он на экране, если нет то его Bitmap очищаю и из списка удаляю ListViewItem. Читал как это делается в андроиде, там классно сделали. При событии скрола есть параметры первый видимый итем, количество видимых, и общее количество итемов, а при изменении статуса скрола параметр указывающий на то что это, идет скролинг, начался или закончился. и от сюда куда удобнее получать видимость итемов и пихать в него картинки и удалять без бубнов .
  8. в той демке удаления нет картинок при потере видимости. а это надо ибо на моем другом тестовом аппарате на 4.1 андроиде при загрузке около 100 картинок все начинает дико глючить, картинки не прорисовываются или рисуются вообще поверх всего.
  9. у меня загрузка картинок идет из БД, поэтому приходится самому добавлять при отрисовке или с базы или с кеша если есть на диске, и удалять в отдельном потоке картинки если итем не в области видимости.
  10. а вот обычный ListView в моей проге, с программой записи подлагивает без нее все летает плавно. ибо картинки кешируются на диск и как item пропадает из видимости картинка зачищается. как item становится видимым подргужается с диска.
  11. ну хотя бы вот письками мериться не буду, телефон не топовый, средний, проц Snapdragon 410
  12. использовать плавающие панели с html текстом вместо прорисовки колонок это извращение. при этом хз как это все себя поведет при 500 панелей. ну и стоимость сего добра то же не малая.
  13. чем FMX будет в случае работы с API OpenGL отличаться от делфи? да ни чем. Я думаю можно сделать таку штуку и на FMX. надеюсь не последует следующий стандартный вопрос в таких случаях - а есть исходный код похожей готовой программы
  14. не включается это программно из-за безопасности.
  15. без сервиса никак. но проблема в том что не все включают блютуз что бы батарею не жрал. у меня он вообще всегда выключен.
  16. если на бильдере нет сервисов может проще сделать было бы все на делфи и не парится? а вообще такие вещи лучше писать на андроидстудио.
  17. хе а я успел на халяву скачать только смысл в этой пустышке? все что нужно надо приобретать отдельно. апгрейд до профи 1300$. при этом мобильное дополнение покупается отдельно, работа с базами отдельно.
  18. ну словесное описание каждый может сделать, кто бы куском кода помог )))
  19. ну где ссылка на тему где можно насчет картинок потрындеть? понравилось. на чем ты сделал список в два три ряда картинок с вертикальным скролом? новый компонент на листвью или на скролбоксе с панелями замутил? колись я то ж хочу такое сделать. у меня картинки из базы данных грузятся и лагают.
  20. ссылка на обсуждения? если про тот хелпер к битмапу то я не о том как загрузить, я о том что код запущенный под тасками валится и программа выгружается. а без тасков выполняется нормально хотя все обернуто анонимными вызовами как и в хелпере. да и кстати в том же примере с хелпером к битмапу если картинок много скролинг тормазит у листвью даже на винде.
  21. я про таски а не про потоки. в тасках нет этой функци. и насчет OnTerminate - я так же заметил не здоровую фигню - создание 10-20 потоков очень сильно затормаживет основную систему. именно создание. никакой плавности нет при прокрутке. так что лучше это делать внутри потока а не снаружи. хотя если потоков один или два то как выход.
  22. я пробовал таски запускать на андроиде, у меня программа веля себя как то не корректно. я пытался в тасках запускать заполнение картинками итемы листвью. прога запускалась, что то там начинала делать и вываливалась. если я убирал таски и использовал вызов процедуры без потока то все работало замечательно и без глюков. я так понял работа на андроиде с таками глючит.
  23. еще бы хорошо было бы увидеть небольшой стек вызовов от куда произошел сбой было бы вообще замечательно.
  24. установить макось 10.10 и туда икскод 7.2. если конечно получится
×
×
  • Создать...