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

krapotkin

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

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

  • Посещение

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

    209

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

  1. идея в том, что если сложная (+-) формочка, то она не очень предсказуемо скроллится. тогда мы можем сделать скриншот любого компонента, или всей формы в mouseDown далее например так выводим TImage c полученным скриншотом поверх всего на заднем плане меняем фрейм или что там еще на новый тем временем по mouseMove сдвигаем TImage. Получается эффект листания страницы как в читалке, но без применения TabControl
  2. так PageControl же )) грубый вариант - это просто отлавливать жест и по окончанию жеста делать ActionNextTab если повозиться - с помощью мгновенно изготовленного скриншота можно добиться эффекта свайпа для любого фрейма.
  3. я наоборот, за фреймы. логику гораздо проще строить. Да и переключение форм свайпом вправо влево не сделать, например. Форм пара тройка достаточно. По приведенному примеру - компоненты создавать в потоке - не только бесполезно но и вредно. Создавать в главном потоке. К счастью, экран мобилы невелик, и если создавать то, что реально нужно прямо сейчас, вполне все норм про картинки и прочее - нужно понимать, что золотой пули нет. если вы превысите разумные пределы по памяти, ваше приложение грохнется. так что использовать файлы или нет - решение принимать по месту прописки со скроллом - если разобраться с ListView, то достаточно несложно делать любые раскладки. одно, что приходится кодить, вместо привычного накидывания компонентов Насчет DisposeOf. Уничтожение производится автоматически, поэтому вызывайте FreeAndNIL и не парьтесь. Только перед этим для компонентов например надо сделать Parent := NIL Уничтожение не должно производиться вами. Деструктор будет вызыван без вас, когда вы затрете все ссылки на ваш объект.
  4. Это для совсем простеньких случаев, когда классу потока не нужны поля, методы и все такое. TTask.Run ничем не отличается от этого А для более продуманных вещей потомки TThread по-прежнему рулят
  5. есть более интересный и по-мне, более правильный способ по нажатию в меню не сразу выполняете что-то, а ЗАПИСЫВАЕТЕ действие, которое ВЫПОЛНИТСЯ по событию закрытия мультивью тогда реакция наступает визуально правильная и дальше крутите колеса, запускайте потоки и все такое
  6. маршалинг и демаршалинг по определению привязаны к типу объекта RTTI предоставляет список свойств и атрибутов и это все перегоняется в строку, передается по сети и восстанавливается из строки обратно на другом конце при десериализации поле JSON должно записаться в поле объекта. если такого поля нет, очевидно будет ошибка. Умеет ли XSO парсить новый JSON - не пробовал.
  7. Пишите автору @Равиль Зарипов (ZuBy)
  8. Все придумано до нас. В поиске набирайте ModernLV
  9. прекрасно все отрабатывает в андроид. я проверял. просто поставьте Create(true) наконец
  10. так вот он так и работает - не ссылки чистит, когда вы пытаетесь убить кого-то, а убивает тех, кто больше не нужен. поэтому не ваше дело вызывать деструктор, ваше - как раз зачистить ссылки но для кроссплатформенной совместимости я чаще всего пишу freeAndNil() . Там вызывается Free но на ARC внутри Free - пусто хоть 10 раз freeOnTerminate Загляните в код TThread.Terminate. Он не делает НИЧЕГО! вы же не показали, что у вас флаг Terminated как-то используется в Execute... До этого момента, видя, что в других местах вы гуляете по граблям, я уверен, что и тут - тоже. Думаю, что при уходе в фон нужно вообще все связи с камерой разрывать. и для возобновления просто делать все заново. чтобы уничтожить объект из обработчика объекта, нужно обладать смелостью и задором, конечно))). Но можно просто TTask.Run(procedure begin TThread.Synchronize(procedure begin comp1.parent := nil; FreeAndNil(comp1); end) end);
  11. DisposeOf нужно делать чтобы ВЫЗВАТЬ деструктор а для ARC обычно НЕ НУЖНО вызывать деструктор)) объект уничтожается, когда заканчиваются ссылки на него Parent держит ссылку на объект. пока ее не удалишь, то и объект не захочет удаляться сам. а пока он не удаляется, не почистит и Parent. и вот тогда идет ненужная принудиловка с разными извращениями.
  12. тут много чего хочется прямо поправить самое первое - убрать в классе TForm1 ссылки на экземпляр этого класса Form1 2. отказаться от idHTTP в пользу THttpClient 3. release обычно не требуется. если все написано хорошо, то FreeAndNil() самое то. а если плохо, то до конца все равно не спасет 4. архитектурно не очень идея визуальному компоненту привинчивать насмерть невизуальный функционал, ну да бог с ним 5. не надо думать что Potok.Terminate вообще хоть что-то делает, кроме как Potok.Terminated:=True. Это если у вас в Execute цикл, вы можете проверять if Terminated then exit... не более того. 6. если вы создаете компоненты динамически, то держите ссылки на них у себя, чтобы не делать for i := Form1.RoomsScrollBox.ComponentCount-1 if ... 7. концепция потока и его родителя должна быть такова: подразумеваем, что поток может пережить родителя, поэтому почаще надо проверять, if terminated то ничего не делая поскорее выходить из потока... 8. при уничтожении компонента нужно не только убить его FreeAndNil(component), но сначала compjnent.Parent := NIL; при соблюдении этих правил не требуется абсолютно никаких извращений при проектировании
  13. короче, сорян, наврал оказывается у жены Note 4, на нем тоже все зашибись у старшего сына 5, но до него вряд ли быстро доберусь)
  14. в силу отсутствия рамок на андроиде нет смысла Borderstyle выставлять. сбросил в sizable на Xiaomi Redmi Note 3 pro норм. на 5А - тоже. до 5-ки пока не добрался
  15. выложите тестовый проект, я могу запустить на xiaomi 3,5,5A
  16. вроде - да реально мало осталось тех, кто хочет первопройти новые революционные технологии Эмро, патчи к которым возможно не выйдут никогда, и поделиться со всеми историей успеха )))
  17. база-то на VPS. а сервер-то под linux. вряд ли у вас там windows. соответственно, какой уж там datasnap
  18. все зависит от инфраструктуры если запрос в интернет то выбор ессно php если наоборот, в локальной сети, то datasnap предпочтительнее и то и другое - по принципу - "чтобы ничего не нужно было устанавливать дополнительно на сервер"
  19. да блин нет никаких логин и пароль для THttpClient есть форма логина. она должна принять от пользователя данные и послать их серверу. Способ передачи и вызываемый URL зависит от конкретного программиста В ответ сервер присылает обычно токен или куку или еще что-то в этом духе. и далее при каждом запросе нужно передавать серверу эти присланные данные и возможно что-то еще. Чаще всего в заголовке запроса. Но иногда и в URL. А иногда и там и там нужно что-то передавать, чтобы сервер идентифицировал, от кого ему прилетел запрос. и вот этот-то механизм и есть то, что нужно гуглить. если тут есть спецы по WP, они могут знать подробности...
  20. в этом и вопрос это зависит от разработчиков сайта
  21. Конечно можно. А что такое "авторизоваться" ?
  22. krapotkin

    Пуши в IOS

    не могу с ходу найти пример в доках, с которого все начинают делать Notifications. Сам уже давно не касался этой темы... там где-то при старте программы вроде сначала можно получить через NotificationCenter все notification для этой программы, которые система изготовила из пришедших пушей ну а у Notification должен быть Message, где хранится JSON стоит поспрашивать у коллег в чатике. кто помнит
  23. krapotkin

    Пуши в IOS

    конечно. мы же читаем json пуша в программе самостоятельно соответственно, можем разобрать и делать что-нибудь свое
  24. что значит распарсить? что и куда вы хотите получить? arr := TSuperArray.Create(json); item := arr.o[0]; ordNum := item.s['orderNumber']
×
×
  • Создать...