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

kami

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

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

  • Посещение

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

    41

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

  1. Под виндой все же рекомендуется использовать не виндовый CreateThread, а враппер BeginThread, если уж наследника TThread по каким-то причинам вы избегаете
  2. Для этого надо сперва догадаться, что проблема именно в этой букве Вот чем мне не нравятся плюсы - так это слишком большой вольностью...
  3. Но если про него кто-то помнит (держит ссылку), то зомби будет продолжать влачить существование.
  4. Симметрично! А если у класса есть методы Save и Load (что я тоже обычно делаю), то Assign вообще состоит из 3-4 строк.
  5. Кто вам такое сказал? Всё зависит от дизайна приложения. Фрейм делается, если какой-либо участок интерфейса: а) используется в нескольких местах, дабы не дублировать код и dfm б) если он занимает не всю форму, а ее часть и при этом обладает законченной или разветвленной логикой.
  6. Фреймы с разделением логики работы между ними спасут отца русской демократии.
  7. Увы - автодополнение не включается на конкретном модуле, а действует в пределах всей IDE.
  8. По моему опыту: автодополнение кода перестает работать при Длинном методе (вложенные процедуры/функции не в счет) Если между методами (не внутри, а именно между) есть комментарии Если большая вложенность всяких циклов, if и т.п. Если встречаются конструкции, которые форматтер (Ctrl + D) обрабатывает неправильно (некорректно просчитывает отступы). Помогает явная вставка Begin/end или, как было пару раз с array of record x:type1; y:type2; end - вынести объявление типа отдельно. Иногда (но очень редко) с директивами условной компиляции. Когда Луна входит в созвездие Песца. Если случился пункт 6 - помогает закрыть вкладку модуля и открыть ее заново. В особо сложных случаях - перезапустить IDE.
  9. Дык елки... это ж в анонимном методе, не? Там по моему никогда и не работало...
  10. Раз в новых модулях всё отлично - значит все настройки стоят правильно. Закрыть/открыть вкладку юнита не помогает?
  11. Неправильно подразумеваете Временная папка в iOS на то и временная, что она может очищаться. Причем - не только при обновлении приложения, но iOS также может самостоятельно "почикать" всё из временной папки, если сочтет, что осталось мало места для хранения данных или же по желанию левой пятки. С DocumentsPath такой проблемы нет. Сам храню все данные в System.IOUtils.TPath.GetDocumentsPath, всё хранится в виде xml (там достаточно большой уровень вложенности, лень было создавать структуру в БД, да и не за чем, собственно). Все данные сохраняются от обновления к обновлению.
  12. Сперва - Release, потом = nil http://fire-monkey.ru/topic/2817-динамическое-созданиеуничтожение/?do=findComment&comment=16461 Free на мобильных платформах не делает ничего. В вашем коде компонент, естественно, будет продолжать находиться - ведь ссылку на него как минимум хранит его Owner, переданный в конструкторе.
  13. Нужно использовать myObject.Release, а не Free. Только обратите внимание, что Release - это отложенное уничтожение, т.е. моментально компонент исчезает с формы, а вот уничтожится - после, когда-нибудь, когда до него дойдет очередь. Помимо этого, если ссылка на объект есть где-то в поле класса, то нужно заnil-ить ее, дабы уменьшить счетчик ссылок.
  14. У меня есть смутное подозрение, что код сервиса почему-то не обновляется. Т.е ваш сервис остается самой первой версии, какой был установлен. Ничем другим объяснить такое поведение я не могу Попробуйте кроме сохранения в ини писать в лог, что ли...
  15. Пишет, что не найден provisioning profile. Он установлен в опциях для iOS?
  16. Основываясь на фразе "создании приложения только для Windows" Сама Embarcadero продолжает говорить, что под Windows ничего лучше VCL нет. Используя VCL вы можете задействовать все возможности, предоставляемые операционной системой. Если чего-то будет нехватать для работы (в чем я сомневаюсь, арсенал компонентов и контролов, созданных в рамках VCL, весьма обширен) - к вашим услугам полный набор WinAPI. Все VCL контролы основываются на вызовах WinAPI функций, что гарантирует (ну да, громко сказано, конечно) их быструю работу, поскольку она контролируется оптимальным кодом самой ОС. Помимо этого, некоторые задачи практически невозможно решить без задействования функций ОС. Например, хуки, сервисы, нестандартное поведение при движении мыши (WM_NCHITTEST)... Поведение контролов также будет 100% таким, как пользователь привык видеть во всех приложениях родной ОС. Да, на FMX тоже можно использовать функции ОС и нативные контролы. Но микс нативных и "собственных" контролов приводит к извращениям по расположению и компоновке контролов, т.к. нативный контрол всегда отрисуется поверх собственных. Также, т.к. Windows основана на механизме передачи оконных сообщений - есть определенные сложности в применении WinAPI. Ну и - если вы задействуете WinAPI функции, т.е. привяжетесь к конкретной ОС - смысл тогда использовать FMX? Резюмируя - если работа действительно планируется только под Windows - используйте VCL. Если хоть в отдаленном будущем мелькает возможность работы приложения на других платформах - то сразу нужно работать на FMX, этим вы избавите себя от проблем портирования приложения.
  17. Это далеко не всем очевидно Есть определенная категория пользователей и работающих на них программистов - финансисты. Дык вот, эта категория действительно считает, что они должны видеть все, абсолютно все данные сразу. На самом деле, им это конечно не нужно. Но надо! При этом на предложение сделать lazy load делаются круглые глаза и "не, это слишком сложно". Ну да, лучше получать Out of memory...
  18. Это плохо. Лучше сделать Last/First возвращенного датасета (чтобы он 100% подсчитал количество строк) и сразу выставить нужное количество строк для грида.
  19. На FMX не пробовал, но вроде mORMot-овские SynPDF и mORMotReport должны суметь скомпилиться под FMX, по крайней мере - если не объявлять {$ifdef USE_SYNGDIPLUS}
  20. Небольшое противоречие, нет? А так - синглтон вам поможет
  21. Снести драйвер. Отключить телефон. Подключить телефон. Дать винде самой установить драйвера.
  22. Понимаю, что несколько не по теме, но в приватных разговорах мне аналогичные работники говорили "пока ваш оборот не превысил (сумму не помню, но большая) - можете спать спокойно, никто вами не заинтересуется". Декларацию можно подавать, насколько я знаю, и в электрическом виде.
  23. На Qualcomm - http://www.asus.com/ru/Phone/ZenFone-2-Laser-ZE500KG/specifications/ То же - по ZE500KL, ZE550KL, ZE551KL ZE550KG - Asus не знает про такой . А, вернее знает (прикольно, что поиск по asus.com не находит ничего, а через гугл - находится), это редакция для Индонезии. Тоже Qualcomm ZE600KL, ZE601KL - поиском по asus.com находится только одно сообщение в FAQ о планах обновления до Marshmallow Наверное, тоже локализованные редакции.
×
×
  • Создать...