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

kami

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

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

  • Посещение

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

    41

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

  1. Люди, помогите понять. Вот топикстартер - создает трехзвенку, работает с датаснап, mySQL, делает приложение под Андроид... то есть - довольно-таки сложные вещи. И не может прочитать сообщение об ошибке, путает компиляцию с исполнением ? о_О...
  2. Что значит не происходит? Деплой - это отдельная операция, в меню Project в IDE. Никак с компиляцией не связана. А вам и не надо поддерживать. Окно Devices прекрасно заливает ipa файлы на устройства, мало ли что там на заборе написано :). Опробовано в XCode 8.0 неоднократно на устройствах с iOS10.1.1 Оно работает. И компилируется и деплоится. Только симулятор не хочет работать вообще. И видимо что-то не совсем стыкуется, т.к. бывают невнятные вылеты приложения на устройствах, скомпилированного с SDK10.1.
  3. Чтобы появилось на устройстве, Delphi должна увидеть это устройство. Если в Target для iOS32 пусто (не отображается нужное устройство) - нужно правой кнопкой на этом "Target" и нажать "Обновить". Если устройство таки не обнаружилось - переходим в XCode, Window - Devices, выбираем нужное устройство, нажимаем кнопочку "+", выбираем ipa файл (по умолчанию он емнип в "Устройство-пользователи - пользователь - PAServer-ScratchDir"). Ээээ... а кроме компиляции деплой делался?
  4. на симуляторе пошагово проверяли? Может просто ресурс не задеплоился?
  5. Берлину нужен XCode 8. С 8.1 у вас просто не подтягивается список устройств симулятора. Любому берлину, начиная от просто и заканчивая Upd2. Можно поставить 8.0 рядом с 8.1, зайти в XCode - Preferences - Locations и в Command Line Tools выбрать XCode 8.0. После этого - перезапустить PAServer, в Delphi подтянуть новые SDK и обновить список устройств в TargetPlatforms для симулятора
  6. Вот-вот. Не раз говорил именно это, Но диванные эксперты знают лучше.
  7. Чем? А так - меня порадовали некоторые фиксы, особенно - в RTL
  8. нет. Отправляете как broadcast, т.е. на адрес 255.255.255.255 - пакет улетит всем, до кого в принципе сможет дойти в пределах локалки. С Indy - не подскажу, в Win с ними не работаю, а на мобильных платформах мне хватает http.
  9. Относительно стандартный виндовый способ: сервер систематически отправляет широковещательные UDP-пакеты с информацией о своем реальном порте подключения. клиенты, используя UDP-сервер, приняв пакет, выцепляют IP сервера и его TCP-порт, отключают UDP-сервер и пытаются законнектиться по указанному сервером порту с использованием согласованного протокола обмена. Проблема: требуется настройка файрволла на сервере, дабы он пропустил пакеты наружу и анализ сетевого оборудования, дабы оно не резало UDP-трафик. Естественно, действует только в пределах локалки.
  10. Думаю, помимо отладчика здесь есть еще некоторое недопонимание. SetLength - просто выделяет память под массив. Что там было в этой памяти раньше - никто не знает. Поэтому изначально, после выделения массива в его элементах будет мусор. Что, собственно, отладчик и покажет. А при первом вызове метода со статическим массивом - с большой долей вероятности в массиве будут нули. З.Ы. посмотрел скриншоты - мда, отладчик андроида явно недоперестарался
  11. Не буду разводить холивар, тем более что with или не with имеет кучу обсуждений, в которых высказывались и именитые разработчики. Скажем так - использование with делает код не явным (например - в классе, где используется эта конструкция с with тоже есть метод SaveToFile или свойство Text) и плохо читается сторонним разработчиком. Но - каждый решает для себя.
  12. И это будет гораздо более правильно. не используйте with!
  13. Вместо Embarcadero подставить любую другую IDE под мобильные платформы - и разработчики, использующие эту "другую" IDE с вами согласятся безоговорочно Одни отзывы про XCode чего стоят
  14. Добрый день всем! Начал доставать Hint от компилятора под iOS: Конфигурация: RAD 10.1 Berlin upd1 (Prof), XCode 8.0 (8A218a), OSX El Capitan 10.11.6 В SDK этой папке соответствует Path: $(SDKROOT)/System/Library/PrivateFrameworks | FrameworkName: UIFoundation Проверил - действительно такой папки нет на диске. Обновление локального кеша, удаление и установка заново SDK (32бит iOS10) не помогает. При этом в SDK для iOS8.1 - 9.2 такая папка есть. И под симулятор iOS10 такая папка тоже есть. Не то чтобы оно сильно мешало, приложение вроде компилируется и запускается, но не люблю сообщения от компилятора и хотелось бы от него избавиться (это единственный хинт на текущий момент). Что можно сделать? Что это вообще за фреймворк UIFoundation и насколько он нужен для работы?
  15. В офисе уже давно отказались от этого функционала...
  16. Не уверен, но может быть так, что сравнение указателей (если это "проглотит" компилятор) будет сравнивать только адреса методов в VMT. А нужно сравнивать адресацию метода и объект, к которому этот метод относится (например - если создано две формы одного класса и обработчик назначен на одну из них). Вероятно, @ при сравнении myKeyDown = Form2.OnKeyDown будет давать ложно-положительные срабатывания, если в реальности myKeyDown = Form1.OnKeyDown.
  17. точно не правильно. 1. Создавать TNetHTTPClient нужно в execute потока, а не использовать лежащий на форме. 2. Работать с визуальными объектами нельзя из execute, об этом 100500 раз предупреждали. Посему, правильно с технической точки зрения (упустим пока архитектуру) будет: 1. в execute создать сетевой компонент и выполнить запрос. 2. Распарсить запрос 3. Передать результаты в основной поток и уже в нем работать с ListView. Полезно для правильного написания вынести код потока в отдельный модуль. Который НИЧЕГО не должен знать о модуле формы. Поток должен иметь событие, через которое он передает результаты своей работы куда надо. Само собой - вызывать это событие нужно в основном потоке, используя средства синхронизации. Форма при создании потока назначает ему обработчик события и выполняет в нем необходимые действия.
  18. Потому что компилятор хочет сравнить результат работы метода со второй сравниваемой переменной. И он видит, что метод имеет параметры, но они не передаются. Правда, если подставить к примеру что-нибудь фейковое, то компилятор начнет ругаться, что метод не возвращает значения, т.к. он объявлен как procedure of object
  19. Не претендую на самое лаконичное решение, но проверку можно организовать так: var tmp: TNotifyEvent; // понятно, что тут должен быть нужный тип события, лень смотреть, что там с OnKeyDown begin tmp:=myProc; if (TMethod(OnActivate).Code = TMethod(tmp).Code) and (TMethod(OnActivate).Data = TMethod(tmp).Data) then ;// именно myProc - обработчик события OnActivate
  20. Я просто скрываю. Удалить-то легко и быстро, а вот создание, особенно нагруженного фрейма - затратная операция. Мне при создании очередного фрейма приходится показывать ActivityDialog из FGX.
  21. Так куда уж подробнее Всё, что может меняться - должно иметь интерфейс подписки. Все заинтересованные объекты должны подписываться и отписываться. А уж реализация и передаваемая информация - это детали. У меня, например, в качестве события об уведомлении используется вот такое: type TNotificationAction = (naAdd, naChange, naDelete); TNotificationEvent<T> = procedure(Sender: TObject; Action: TNotificationAction; const Param: T) of object; Можете глянуть в исходники FMX, фраза для поиска - FreeNotification
  22. А вот это имхо странно. Если SDK подтянулось, то компилятор вообще не лезет на мак. Хотя, с учетом XCode8 - да, ошибки могут пойти любые, ибо SDK не тот...
  23. Если XCode 8 (что, собственно, и должно было произойти при обновлении) то работать не будет. Для 8 хкода нужен 10.1 берлин
×
×
  • Создать...