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

Виталий Иванов

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

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

  • Посещение

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

    1

Весь контент Виталий Иванов

  1. Я недавно или давно писал по поводу почему компилятор при разном наборе USES увеличивает время компиляции где-то от 4 до 10 раз. То есть проект может компилируются за 10 секунд, а при небольших манипуляциях с USES станет компилироваться 40 секунд и тд. Очень хорошо заметно на большом проекте у меня с 1 минуты 18 секунд выросло время компила до 1 часа 40 минут. Ну хватит предыстории после анализа зависимостей и проверки логов обращения к файловой системе был выяснен интересный факт :) У меня в проекте появился UNIT в котором глобальные методы для так сказать конфигурирования внешнего вида компонентов (компоненты тоже самописные) и получилось следующая ситуация: 1. В UNIT с формой лежит один из визуальных компонентов назовем его TXXX 2. соответственно в первом (interface секции) USES данного модуля прописывается автоматом модуль из зависимостей компонента 3. В нижнем (implementation секции) USES расположен UNIT с глобальными методами (назовем его UNIT XXX) для так сказать конфигурирования его (установка бордера и другой дичи) 4. В этом UNIT XXX (interface секции) USES также прописаны модули этих визуальных компонентов для передачи их в методы как параметры. Так вот из-за такой ошибочной связи время компила увеличивается в разы и по анализу project dependency увеличивается с более менее приемлемых (по времени компиляции) 200 до 500. Из сходя из этого начала рефакторинг всего кода и переводить компоненты на интерфейсы это сокращает project dependency проекта и неплохо так, перевод одного компонента который используется почти везде в проекте на интерфейс сократил с 200 до 190 и время компила начала сокращаться. Сори за много букавок, но может кому будет интересно или кто с толкнулся с такой проблемой. Так же в решении и анализе взаимосвязей помог эксперт MMX.
  2. может у кого есть пример рабочий в виде архива со всем что нужно, мне много не нужно просто bass_Init при OnCreate формы
  3. Modify Audio Settings и Record Audio утсановил, пробовал указывать дургие место в RemotePath и да зависает на bass_init до RecordInit не доходит
  4. Изменил, ситуация таже, при старте зависает на заставке и всё. Как раз в этот момент происходит инициализация BASS но так как он ненаходит свою греб**ую библиотеку то как следствие зависает нахлухо. Может проблема в весрии Android у меня строит 8.0.1
  5. Немогу понять в чём дело добавил в deployment библиотеку вроде все норм и она даже появилась в самой APK но любой пример с использование этой библиотеки тупо виснит при загрузке и всё больше ничего не делает, в логах пусто. Может кто сталкивался с подобным ?
  6. Теперь есть отправная точка как это должно, теперь буду дальше эксперементировать. Нужно сделать теперь ещё сервер для того что бы это работало через NAT и проверить работу на Android
  7. Кому юудет интересно, собрал мини проект по примеру выше. Звук передает как ни странно, и да же приемлемого качества с минимальной задержкой спасибо всем кто участувет в этой теме Сразу извиняюсь за говно код внутри примера, делалось не для эстетики, а показать другим что пример рабочий. Chat Test_09.06.2018_19-04.rar
  8. Это я понял, пример бы тоже был как ни ксате замечательным дополнением темы
  9. Эх примерчик бы того как вы захватываете потом и отправляете его клиентуи как принимаете. Уже нескольок недель гуглю в этом направлении и инфы ноль. А бы ло бы интересно посмотреть как это работает. И да находил инфу что через bass.dll это делают захватывают поток с устройсва (микрофона) в событии захвата потока добавляют заголовк для куска (заголовок кодека) и передают его на клиента, но инфы о том как клиент должен это получить и воспроизвести нету да и вообще не будет ли случаем прерывании мезжу полученными кусками и как с памятью обстоят дела ? я так понимаю что для этого мазахизма выделяется какойто буфер и внесго складывается или дописываетс и наверное передача идет попакетно а не потоком (record package). (и это толкьо малая часть вопросов ) Вообщем если не сложно можете поделится примером а то вопросов больше чем ответов
  10. Да, другого более подходящего я не знаю. Ну и с ним легко работать (в плане создания элементов)
  11. Использовал пост http://blog.rzaripov.kz/2017/04/android.html от много уважаемого "Равиля Зарипова" Но у меня приключилась беда. Как видно на скриншоте календаря немного плющит в ширину. Может кто сталкивался с подобным знает как решить ?
  12. Может немного не в тему: А кто знает как перевести эту кнопку, а точнее обе (те что появляются над клавиатурой) Cancel, Done на русский. ?
  13. В эту сторону и думал пока не знаю как правильно это организовать
  14. Круто работает. Делаю в цикле от первого видимого и до последнего видимого + количество видимого и при быстрой прокрутке начинается факханалия невозможно быстро листать.
  15. Я думаю сделать связь Items c каким-то типа группы определять по нему клик и перестраивать список. А вообще идея интересная.
  16. Есть такая идея. Загружаю в TListView много элементов (от 500 до 1000 может и более) ситуация вынуждает грузить именно столько . Так вот когда начинаю создавать их кастомно после создания приходится вызвать oItem.Adapter.ResetView(oItem) (Если этого не делать то не корректно рассчитывается высота и ещё пару багов ) что соответсвенно вызывает подвисание интерфейса на Windows все круто это не так в глаза бросается, а на Android печалька форма зависает от 10 до 30 секунд Так вот сам вопрос можно ли как это сделать в отдельном потоке что бы пользователю показывать какой нибудь Waiter. Или может кто как по другому предложит реализовать ? Смотрел в сторону динамической подгрузки итемов но хотелось бы что и его поиск работал .
  17. Нашёл для себя ответ может кому нужно будет Получение TSearchBox Ну а после получение просто устанавливаю ему стиль который нарисовал ранее.
  18. Ок. Спасибо всем. ModernLV очень спас компонент во всём на данный момент устраивает, как прозрачный разделитель так и прозрачный фон и прозрачный Item, просто супер. Есть ещё такой вопрос раз пошло тут про прозрачности. Как можно нарисовать стиль для SearchBox хотелось бы что бы под Windows и Android выглядело одинаково, а не под платформу.
  19. Вопрос к экспертам Возникла необходимость и хотел спросить можно ли как-то сделать TlistViewItem прозрачным, а то получается что сам TlistView может быть прозрачным а его итем нет . Это как-то же делаться у TListBoxItem. Заранее огромное спасибо.
  20. Может быть. Я обычно чтобы распарсить ответ от сервера, создаю класс и загружаю в него и уже потом работаю с классом (чего не умеет XSuperObject). Ну и как результат я не делаю приведение типов.
  21. Для Syste,.JSON необходимо использовать атрибуты по типу которые расположены в REST.Json.Types [JSONNameAttribute('НАЗВАНИЕ')] -Так ваша переменная назвается в JSON [JSONMarshalledAttribute(False)] - Так блокируется выгрузка (нащет загрузки не уверен) тоесть при TJsonObject(oJSON).ToString переменной с таким атрибутом не будет TItems = class private [JSONNameAttribute('ERROR')] FERROR: String; [JSONNameAttribute('RESULT')] FRESULT: String; [JSONMarshalledAttribute(False)] FOwner : TItems; public property ERROR : String read FERROR write FERROR; property RESULT : String read FRESULT write FRESULT; property Owner : TItems read FOwner write FOwner; end; -------------Результат TJsonObject().ToString--------------------- {"ERROR": "", "RESULT": ""} ================================================================== TItems = class private FERROR: String; FRESULT: String; FOwner : TItems; public property ERROR : String read FERROR write FERROR; property RESULT : String read FRESULT write FRESULT; property Owner : TItems read FOwner write FOwner; end; -------------Результат TJsonObject().ToString--------------------- {"eRROR": "", "rESULT": "", "owner": ""} Если честно то не знаю почему так все используют XSuperObject, встроенного инструмента "System.JSON, REST.Json, REST.Json.Types" с головой хватает на всё
  22. Извините совсем забыл, так же у меня строит вот такое дополнение DDevExtensions к IDE в нем как раз и настраиваться такое поведение, так же есть и super-zoom - который оставляет только поле редакторов как на сткриншоте ниже.
  23. странно. Подозреваю что дело в настройках редактор. вот мои настройки
  24. А двойной клик по закладке с юнитами (я этим часто пользуюсь)? Оно же вроде как прячет все кроме мешюшки и доп кнопок, так сказать почти во весь экран, я думаю если перенастроить панель инструментов то можно добиться максимально пустого пространства
×
×
  • Создать...