-
Постов
317 -
Зарегистрирован
-
Посещение
-
Победитель дней
52
Весь контент dnekrasov
-
Я не знаю как в других системах, но в MacOS выгружаются только те файлы, у которых в Deployment стоит Remote Path "Contents\Resources\StartUp\". Если его изменить (например на "Contents\Resources\"), то файлы уже не выгружаются и обращаться к ним можно как к обыкновенным файлам используя путь к исполняемому файлу приложения (TPath.GetLibraryPath)
-
В наследнике TThread объявите FCancelledEvent: TSimpleEvent; Переопределите TerminatedSet; в нем сделайте inherited и FCancelledEvent.SetEvent Ну и вместо Sleep используйте FCancelledEvent.WaitFor После этого Ваша проблема исчезнет
-
Я бы посоветовал Вам использовать системные возможности. Не знаю как для iOS и Android, но для Windows и OSX работает все превосходно. Посмотрите Здесь для Windows и Здесь для OSX
-
Описания я так и не нашёл - пришлось до всего доходить самому. В данном случае eidtstyle - простой TLayout. Кстати, чаще всего как контейнер для стиля контрола используется TLayout, но в последних версиях редактора стилей появилась возможность использовать при создании не только контролы из палитры но и такие объекты как TStyledObject, TActiveStyleObject и т.д. - что значительно упростило работу (раньше приходилось вручную редактировать текст стиля). А вообще, чтобы просто понять работу со стилями и разобраться хотя-бы в основных принципах работы с ними мне очень помог Firemonkey StyleEditor. Он очень глючный, давно уже не поддерживается и реальные стили с его помощью уже не создать, но как помощник при старте изучения можно использовать.
-
Как это нет? А набор анимаций для чего. С их использованием можно сделать практически любой выверт с UI. Вообще различные Animation очень забавная вещь. Когда у меня была задача создать свой стиль для приложения и я стал вплотную изучать этот вопрос (ещё на XE4) то добравшись до этого просто забыл про время, забавляясь с различными возможностями этого функционала (именно применительно ко стилям)
-
Сделайте Background контейнером для Content-а.
-
Насколько я помню, там идет работа через его свойство IOHandler, а у него есть методы типа SendStream, SendString и т.д. Лично я, когда работал с ним (правда давно это было), писал свой IOHandler, наследуясь от TIdIOHandlerStack и там реализовывал практически всю логику работы с сервером - правда пришлось немало времени потратить на то чтобы разобраться как это все работает. Но можно на этом не заморачиваться и использовать методы Send... и WaitFor у IOHandler-а, создаваемого по-умолчанию
-
Как я понял, почитав инфу по ссылке, вам предоставляется простой веб-интерфейс для управления прибором. Работать так же как и по COM-порту с ним не получится, т.к. вы работаете уже не с прибором, а с устройством-преобразователем (VR-006). С ним можно работать как с обыкновенным HTTP сервером используя какой-либо HTTP клиент (TIdHTTPClient, TNetHTTPClient и т.п.). Но получать в ответ Вы будете какой-то HTML который надо будет парсить, а какие запросы нужно посылать можно узнать просто посмотрев исходник страничек в браузере. Ну или обратиться к производителю, чтобы они описали протокол обмена по HTTP
-
Тут всё зависит от устройства. Обычно к таким устройствам идет в комплекте SDK, и напрямую по TCP/IP с ними никто не работает. Чаще всего это набор функций в DLL, иногда набор ActiveX-контролов, один раз видел как устройство определяется как сетевой диск и работа с его памятью идет как обычная работа с файлами. Но, если Вы все-таки хотите с ним работать напрямую - то у Вас, как минимум, должно быть описание протокола обмена данными с этим устройством - а там уже решать что использовать. Если устройство поддерживает HTTP протокол - то использовать какой-либо HTTP клиент (TIdHTTPClient, TNetHTTPClient и т.п.), если нет - что-то типа TIdTCPClient.
-
Насчет андроидных сервисов - ничего не могу сказать (просто никогда ими не интересовался), а в виндовом сервисе все работает без проблем (для него и писалось). Могу лишь посоветовать не использовать TThread.Synchronize, ведь этот метод синхронизирует с главным потоком приложения, а сервисы работают в отдельном потоке, а в главном происходит только обработка сообщений сервису.
-
Это я видел... Вот только в логе - те же самые ошибки, что и после запуска SDKTransformRun.bat
-
В 10.1 Berlin появился инструмент SDKTransform. Хотелось бы узнать как им правильно пользоваться или где почитать о нем. А то при попытке его использования выдает кучу ошибок. Справедливости ради надо заметить, что что-то он всё-таки импортирует - но этого слишком мало. Может кто-нибудь знает об этом хоть что-то?
-
Ну... сразу напрашивается вывод, что у AImage и ResBitmap разный PixelFormat, а именно - ARGB и ABGR
- 37 ответов
-
- Delphi XE8
- Android
-
(и ещё 2 )
C тегом:
-
Зачем? Ведь стиль для того и создается, чтобы не заморачиваться над UI. В редакторе стилей у GlowEffect поставить Enabled=False и в триггере выбрать IsPressed=True - и наслаждайтесь
-
Опытным путем выяснил что это не так. Это максимальная сторона изображения, а пропорции его не должны превышать пропорции монитора (может десктопа?). Т.е. если TCanvasManager.DefaultCanvas.GetAttribute(TCanvasAttribute.MaxBitmapSize) возвращает 8192, то для монитора с разрешением 1440х900 можно создать битмапку размером не больше чем 8192х5120, в противном случае получаю ошибки "Cannot create texture for 'TCanvasD2D'" или "Stack overflow" Позже попробую поэкспериментировать на десктопе, растянутом на 2 монитора с портретной и ландшафтной ориентацией.
- 37 ответов
-
- Delphi XE8
- Android
-
(и ещё 2 )
C тегом:
-
Тоже интересовал этот вопрос. Нарыл кучу информации, но в конце концов реализовал этот механизм. Смотрите прикрепленный архивчик - там простенький проект, показывающий как ото сделать. Проверял на Delphi 10 Seattle + OS X El Capitan 10.11.4 OpenWith.zip