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

Поиск сообщества

Показаны результаты для тегов 'Delphi XE8'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 15 результатов

  1. Как узнать количество свободного места на "диске"? К примеру получаю путь System.IOUtils.TPath.GetCachePath, и перед тем как туда писать, хочу узнать есть ли и сколько свободного места. С наскока не нашел ответ. Заранее благодарю!
  2. Возможно ли в ListView сделать кнопку с текстом повернутым на 90 градусов, т.е. вертикальная надпись на кнопке? В стиле, в listviewstyle есть button (TStyleObject), у button есть RotationAngle, но установка в 90 никакого результата не дает. Может есть другой путь?
  3. Есть сайт просроченным сертификатом безопасности (госконтора, такое у них в порядке вещей), сертификат могут обновить завтра, а могут и через год, но работать с ним надо. Var HTTPClient: THTTPClient; HTTPResponse: IHTTPResponse; begin HTTPClient:=THTTPClient.Create; HTTPClient.OnValidateServerCertificate:=HTTPClientValidateServerCertificate; ..... try HTTPResponse:=HTTPClient.Post(FHTTPRec.Query,FHTTPRec.PostData); except on E : Exception do begin FHTTPRec.ErrorCode:=-1; FHTTPRec.ErrorMsg:=E.Message; end; ..... end; procedure THTTPThread.HTTPClientValidateServerCertificate(const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); begin Accepted:=True; end; Под Windows код работает идеально - вызывается HTTPClientValidateServerCertificate, где принудительно доверяем сертификату. Под Андроид HTTPClientValidateServerCertificate или игнорируется, или до процедуры не доходит. Получаю ошибку: First chance exception at $A06ECCE5. Exception class EJNIException with message 'java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.'. Process tratata.apk (25487) First chance exception at $A0EA44F5. Exception class ENetHTTPCertificateException with message 'Server Certificate Invalid or not present'. Process tratata.apk (25487) Как победить проблему? P.S. До этого проект работал на Indy, там подобные проблемы успешно игнорировались. Но решил перевести все на THTTPClient и вот результат :-(
  4. На незначительном количестве устройств, менее 0,1%, получаю ошибку "Bitmap size too big" при AImage.Bitmap.LoadFromStream(AMemoryStream). Подозреваю что ошибка происходит на слабых устройствах. Картинка 250х250 png. Код выполняется в основном потоке (в интернетах были упоминания что глючит эта операция в отдельном потоке на каких то версиях Delphi). Как предотвратить подобное? Можно как то определить максимальный размер картинки для текущего устройства? Или может дело не в свободной памяти, а в чем то еще?
  5. Заметил в нескольких своих приложениях странное поведение TTabControl на Андроиде - первое переключение табов c TTabTransition.Slide вызывает фриз отсновного потока приложения примерно на секунду. Не зависит от содержания табов. Не зависит от метода создания табов и табконтрола. Последующие смены табов проходят гладко. Можно как нибудь передернуть заранее механизм анимации (думаю в нем причина)?
  6. Задача следующая: есть ListView настроенный в дизайнтайме, во время работы приложения необходимо создавать в runtime и использовать несколько копий ListView. В каждом будет свой контент. Не могу придумать элегантное решение. Первый вариант - тупо создавать в runtime и кучей кода настраивать ListView до нужного состояния. Но это лениво ;-) Второй вариант - оставить в приложении настроенный вручную ListView и клонировать его по мере надобности, как то так наверное ListViewDestination.Assign(ListViewSource) ? Третий вариант - сериализация настроек и загрузка их в новые экземпляры ListView. Заранее благодарю за совет.
  7. Как исключить устройства с Intel Atom из списка поддерживаемых устройств? Так что бы в Google Play было сообщение "Application does not support this device". Приложения не работают на Intel Atom, но пользователи успешно их устанавливают, естественно запуск не возможен. 80% плохих оценок выставляют как раз пользователи с Intel Atom. Из за этого приложение с потенциальной оценкой 4.5 висит в маркете с 3.8. Обидно однако. Может в манифесте можно что то прописать? Управлять исключениями в консоли разработчика не вариант - вручную исключать устройства для каждого приложения - исключалка сломается. Механизма импорта списка исключенных устройств гугль к сожалению еще не придумал.
  8. Вопрос - System.IOUtils.TFile.WriteAllText потокобезопасная процедура? Можно ли использовать в отдельном потоке?
  9. Есть приложение опубликованное на Google Play в двух ипостасях - бесплатное с рекламой и платное без рекламы. Все было нормально, пока Google Play не ввела новый пункт в "Цены и распространение" - "НАЛИЧИЕ РЕКЛАМЫ". Теперь в платной версии мне пишет "В одном или нескольких активных APK-файлах есть SDK рекламных объявлений: Версия: 47, SDK: AdMob". Реклама создается в бесплатной версии динамически. Использую директивы компилятора типа: {$IFDEF IALITE} Fmx.InterstitialAd.Android, FMX.Advertising, {$ENDIF IALITE} В Project options, в Entitlement List галки на AdMob Service не стоит. Бинарный поиск в папке с релизом выдает несколько сотен вхождений фразы AdMob (в основном Androidapi.JNI.AdMob) в файлах classes.dex и libИмя_проекта.so , откуда они там? Директивы компилятора работают, специально писал абракадабру в файлах которые не должны компилится - все хорошо, компилятор не видит этот бред. Где копать? Иначе угрожают заблокировать платное приложение :-(
  10. TidHTTPClient перестал работать в Android 6. При попытке Get приложение закрывается с segmentation fault. То же самое приложение на всех остальных версиях андроида работает нормально. На эмуляторе проверить не удалось, по какой то причине эмулятор с андроид 6 у меня запускается около часа, а попытка отладки приводит к зависанию дельфи. Взял на пол часа живое устройство, отладка показала что крах происходит на стадии разбора результата. Т.е. данные с сервера реально получает (это подтверджают логи сервера), и при попытке вернуть результат все умирает. Код простой: Var HTTPResult : TStringStream; URI: TIdURI; HTTP: TIdHTTP; begin AURL:='http://10.10.0.1'; FHost:='10.0.0.1'; HTTP:=TIdHTTP.Create; HTTP.CookieManager := TIdCookieManager.Create(HTTP); HTTP.Request.Host:=FHost; HTTP.AllowCookies := true; HTTP.HandleRedirects := True; HTTP.ConnectTimeout:=6000; HTTP.ReadTimeout:=30000; HTTP.Request.CustomHeaders.AddValue('Connection','keep-alive'); HTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'; HTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36'; HTTP.Request.AcceptEncoding:='gzip, deflate, sdch'; HTTP.Request.AcceptLanguage:='ru,en-US;q=0.8,en;q=0.6'; Result.Status:=False; Result.MessageText:=''; AURL:=StringReplace(AURL,'{AuthorizationKey}',AuthorizationKey,[]); AURL:=StringReplace(AURL,'{Host}',FHost,[]); HTTPResult:= TStringStream.Create('', TEncoding.UTF8); URI := TIdURI.Create(AURL); HTTP.CookieManager.AddServerCookie(CookieAuthorization, URI); try HTTP.Get(AURL,HTTPResult); except on E : Exception do begin Result.Status:=False; Result.MessageText:=E.Message; Exit; end; end; Result.Status:=True; Result.MessageText:=Trim(HTTPResult.DataString); HTTPResult.Free; URI. Free; end; Падает на строке HTTP.Get(AURL,HTTPResult);, try не срабатывает. Запрос именно http, не https. К сожалению живое устройство было у меня не долго, досконально разобраться не успел. Выяснил что падает на строке 1423 в idHTTP.pas: IOHandler.ReadStream(LS, -1, True); У кого будут какие мысли? Понятно что разработчики забили на Indy довольно давно, но не хочется целиком десяток проектов переписывать. P.S. System.Net.HTTPClient работает в тех же условиях, не падает, но не смог заставить работать cookie, разбираюсь в чем дело. Хотя при отсутствии таймаутов и обработки редиректов применение сего очень ограничено.
  11. Delphi XE8, Android. Пишу слайдер картинок. Задачу себе поставил аналогичную слайдеру Ввконтакте. Т.е. Жестами листаем налево/направо, двойной клик увеличение, повторный двойной клик уменьшение, ну и пальцами можно растягивать изображения. Все работало замечательно до момента добавления анимации. Слайд (TImage) лежит в TScrollBox. Анимация увеличения (FloatAnimation) тоже отлично работает. Но позиционирование картинки сделать не могу с анимацией, анимацию не могу привязать к ViewportPosition. В итоге, при увеличении картинки, не область по которой ткнули, а по уродски - левый верхний угол остаётся зафиксированным, увеличивается вправо и вниз. Как можно связать FloatAnimation и ViewportPosition ?
  12. Набрел на хабре на интересную статью о новом сервисе Appodeal (Внимание! Ссылка реферальная, вам все равно, а мне приятно ;-) ). Если крато, то это агрегатор/оптимизатор рекламы в мобильных приложениях, с гибкими выплатами на Яндекс.Деньги, WebMoney и т.п. Но SDK только Java. Самостоятельно интеграцию не осилю. А их заинтересовать в создании компонентов для Delphi в одиночку не могу. Если кому интересно, пните их вопросом о интеграции с Delphi, или напишите ее сами ;-) Готов даже заплатить разумную сумму за готовый компонент. P.S. Не сочтите за рекламу, к Appodeal никакого отношения не имею.
  13. Для проведения опытов на Delphi XE8 использовал два планшета Android: - Lenovo TAB S8-50LC на базе процессора Intel Atom Z3745: http://www.ixbt.com/portopc/lenovo-tab-s8-50lc.shtml. На нем установлен Android версии 4.4.2. Подключил к USB и, как не странно, тестовая программка "Hello World!" успешно запустилась, хотя думал, что с процессором Intel вообще ничего не получится; - Prestigio Multipad PMT5777_3G с процессором ARM MediaTek MT8382. На нем установлен Android 4.2.2. Затем на форму красного цвета бросил зеленый TRectangle, присвоил Align значение Client, а также добавил желтую рамку с помощью свойства Stroke (Thinkness=10). Запустил на Prestigio - выглядит нормально, если не считать не дорисованных уголков (см. красные квадраты). Кстати, на Windows уголки рамки отображаются нормально. MainForm.Top = 25 - видимо, смещение от статус-бара. Затем запустил на Lenovo и результат получился не такой красивый. Как видим, верх формы почему-то "уехал" за статус-бар, а ее свойство Top равно 0: ------------------------------------------------------------------------------------------------------------------------------------ Поворачиваем планшеты на 90 градусов. На Prestigio все выглядит нормально: На Lenovo произошло какое-то расстройство: Как я понял, на Lenovo возникают проблемы с получением высоты статус-бара и размеров экрана при повороте планшета, но с чем это связано - непонятно. Возможно решение где-то в FMX.Platform.Android или глубже. По крайней мере там переменная FStatusBarHeight равна нулю. На моем примере ниже можно получить правильные размеры и позицию для формы (в т.ч. с учетом статус-бара): NativeWin := SharedActivity.getWindow; if NativeWin <> nil then begin ContentRect := TJRect.Create; DecorView := NativeWin.getDecorView; DecorView.getWindowVisibleDisplayFrame(ContentRect); end;
  14. Здравствуйте! Сегодня начал писать клиента для нашего форума, надеюсь Ярослав не будет против. Проект open-source и любой сможет дополнить проект, затем выложить его в эту тему. Для тех кому это будет интересно, некоторые правила Использовать только родные компоненты Комментировать код Переименовывать переменные и компоненты Сделал я пока немного парсинг последних сообщений парсинг последних тем авторизация через почту (т.к. я ей пользуюсь) работает на android и windows Проект
  15. Delphi XE8, Android. Не могу перехватить исключение при попытке активировать TTetheringManager, при отладке появляется EIdSocketError "Socket Error #101 Network is unreachable". Если игнорировать или запускать приложение отдельно - глухой висяк. Код простой: procedure TForm1.Button1Click(Sender: TObject); begin try TM.Enabled:=True; except on E : EIdSocketError do ShowMessage(E.Message) ; end; if TM.Enabled then TAP.Enabled:=True; end; Исключение не перехватывается. Возникает судя по всему уже в отдельном потоке и приводит к неработоспособности приложения при попытке запустить с выключенным wifi или интернетом. Конечно можно обвесить каждое телодвижение внешними проверками на наличие связи, но подозреваю есть путь проще. Буду благодарен за помощь
×
×
  • Создать...