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

ra.eremeev

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

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

  • Посещение

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

    1

Сообщения, опубликованные ra.eremeev

  1. В 11.07.2016 в 16:52, rareMax сказал:

    В общем рабочее время подходит к концу - поэтому держи:

    
    Function SampleSendFile(Const Url, FileName: String): Boolean;
    var
      lHttp: THTTPClient;
      lSendData: TMultipartFormData;
      lResponse: IHTTPResponse;
    Begin
      lHttp := THTTPClient.Create;
      lSendData := TMultipartFormData.Create;
      try
        lSendData.AddFile('FileField', FileName);
        lResponse := lHttp.Post(Url, lSendData);
        Result := lResponse.StatusCode = 200;
      finally
        lSendData.Free;
        lHttp.Free;
      end;
    End;

     

    Большое спасибо за пример!

    Подскажите, пожалуйста, что делаю не так (я уже 2 дня на загрузку убил, возможно очевидных ошибок не вижу:blink:): не работает код у меня. Серверный скрипт отказывается с ним работать. Выдает ошибку.

    Скрипт на стороне сервера (незамысловатый): :unsure:

    <?php
    $uploaddir = '';
    if (move_uploaded_file($_FILES['FileField']['tmp_name'], $uploaddir . $_FILES['FileField']['name'])) {
        print "File is valid, and was successfully uploaded.";
    } else {
        print "There some errors!";
    }
    ?>

    Через html-форму все отлично грузит (скрипт на сервере рабочий).

    Или, пожалуйста, поделитесь скриптиком на php, который дружит с этой функцией. :(

     

     

  2. Большое спасибо за такой пример!

    Попробовал реализовать у себя - не создается файл. Все действия орабатываются, лог пишется (дополнял логированием после каждого шага - все в порядке). Сервис тоже "не падает" - работает. Но файла на выходе нет :( Ни по имени файла (с полным путем), ни по поиску файла на устройстве :(

    Разрешения присутствуют (и на запись/чтение файлового хранилища и на запись аудио).

    В чем может быть проблема?

    RAD Studio 10.1 upd.2 Win8.1

     

  3. Добрый день, Уважаемые Форумчане!

     

    Подскажите, пожалуйста, как исключить множественное отображение уведомлений от одного приложения на устройстве?

    Поясню: допустим, приложение находится в фоне или не запущено вовсе. Устройство в течение некоторого времени получает несколько уведомлений для данного приложения.

    В шторке будут отображены все полученные уведомления.

    Хотелось бы, чтобы отображалось только последнее пришедшее (как, например, во всех приложениях. В ВК, например)

    Решается ли вопрос на уровне отправляемого уведомления/настройки приложения или проекта?

    Или требуется писать сервис, который будет в фоне висеть и очищать список пришедших уведомлений, выводя последнее?

  4. В 14.04.2017 в 17:26, Ufomaster сказал:

    Переход на NDK r14b - решил вопрос.  

    Добрый день!

    Столкнулся с той же проблемой, что и у Вас: при получении фокуса TEdit'ом в проекте, в котором есть TMS FMX WebGMaps приложение на Android наглухо виснет. С iOS проблем нет.

    Поставил NDK r14b, но проблема не ушла :(

    Delphi 10.1 upd.2 - Win 8.1

    Написал в поддержку TMS. Не знаю, сколько ждать ответа и будет ли он...

    Вы решили свою проблему?

  5. Добрый день, уважаемые форумчане!

     

    Подскажите, наверняка сталкивался кто-то, как получить уровень:

    1. громкости звонка вызова (например, узнать, что стоит вибро или определенный % от уровня максимальной громкости);

    2. заряда АКБ (в %)

    Интересующие платформы - Android и iOS.

    Буду очень признателен за конкретный пример кода :)

  6. В 23.05.2017 в 15:46, Rusland сказал:

    Slava Marchenko подсказал что при закрытом приложении получить сам текст можно так:

    
    procedure TFormMain.FormActivate(Sender: TObject);
    var
      CurNotification : TPushServiceNotification;
    begin
      if Length(fPushService.StartupNotifications) > 0 then
        for CurNotification in fPushService.StartupNotifications do      
           if Assigned(CurNotification) then
             Memo.Lines.Text := CurNotification.Json.ToJSON;
    end;

     

    Rusland, большое спасибо! 

    Это именно то, что требовалось! :)

  7. Добрый день, Друзья!

     

    Помогите, пожалуйста, разобраться - в голове уже каша :wacko:

    Как в Delphi можно реализовать обработку поступающих на устройство PUSH-уведомлений при выгруженном или свернутом приложении?

    При запущеном и активном приложении проблем нет - использую OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification) в связке с TNotificationCenter.

    Эта процедура у меня:

    1. очищает все активные уведомления; 

    2. создает в TNotificationCenter последнее пришедшее, которое и отображается пользователю.

    Его обработчик мной реализован.

     

    "Проблемы" есть если приложение выгружено или свернуто...

    Есть 2 очень похожих сценария:

    Сценарий №1: Приложение выгружено из памяти. Приходит PUSH. Пользователь нажимает на него. Приложение запускается. OnReceiveNotificationEvent после запуска не отрабатывает. Как обработать событие - не знаю :(

    Сценарий №2: Приложение запущено, но свернуто. Приходит PUSH. Пользователь нажимает на него. Приложение становится активным. После этого отрабатывает OnReceiveNotificationEvent: очищаются уведомления и создается новое. Пользователю надо повторно на него нажать и тогда сработает обработчик.

    Вопрос: Как получить текст (или любое другое поле - не важно) ЭТОГО push-уведомления после запуска/вывода приложения из фона?

    Допущение: Если ЭТО уведомление (запустившее приложение) идентифицировать нельзя, то как можно понять, что запуск произведен именно по нажатию на push?

     

    Задача актуальна не только для Android, но и iOS.

    Буду ОЧЕНЬ БЛАГОДАРЕН за помощь!

  8. 28 минут назад, Равиль Зарипов (ZuBy) сказал:

    сделай тестовый пример, где ошибка воспроизводится

    Я даже его путь размещения указал :) В примерах из комплекта.

    Достаточно процедуру сделать вот так:

    procedure TNotificationsForm.NotificationCReceiveLocalNotification(
      Sender: TObject; ANotification: TNotification);
    var s:string;
    begin
      s:=ANotification.AlertAction;
      showmessage(s);
    end;

    и получаем ошибку.

    Притом, эффект не только при обращении к ANotification.AlertAction, но и к Body и Title...

     

  9. Добрый день!

    Не нашел темы подобной, что уже достаточно странно...

    При использовании динственного обработчика компонента NotificationCenter возникает ошибка, приводящая к падению приложения на Android (на iOS не проверял, так как живого устройства под рукой нет).

    Пытаюсь в обработчике ReceiveLocalNotification взять из ANotification параметр ActrionAction (при формировании локального уведомления я этот параметр вручную прописываю).

    Если идти по пути, предложенному в примере из поставки (...Samples\Object Pascal\Mobile Snippets\Notifications\SendCancelNotification) и выводить параметр в Memo или в Label, проблем нет.

    Но как только значение параметра присваиваем переменной и пытаемся с этой переменной дальше работать (например, showmessage), приложение падает :(

    Может, кто сталкивался? Выручите, пожалуйста, в какую сторону копать?

  10. Проблема проявилась с Битмапом. Пробовал решить через костыль с предварительной прогрузкой изображений в TImageList и загрузкой уже оттуда, но тоже действия не возымело :(

    Поэтому я в этой ветке обсуждений и оказался :)

     

  11. Сергей, добрый день!

    Удалось ли Вам решить проблему с отображением картинок?

    Обнаружил проблему в Андроиде и с другими Битмапами: при сворачивании кнопкой "Домой", открытии  другого приложения, где есть графика; разворачивании приложения снова - картинки в битмапе пропадают...

    У меня - Берлин 10.1

    photo_2017-02-14_19-59-56.jpg.44d9885f433f7991cea0f678628843ff.jpg

    photo_2017-02-14_20-00-10.jpg.1814df416ca00d7839712f26f3ef7a6a.jpg

  12. Добрый день!

    Спасибо за отличный компонент! Хорошая работа!

    Хотел бы узнать: при сворачивании приложения и разворачивании вновь спустя непродолжительное время, на Андроид наблюдается "выпадание" картинки: она просто становится черной.

    Применение метода Repaint не спасает...

    Возможно ли "вылечить" в следующем обновлении?

     

  13. 10 часов назад, Alexander сказал:

     

    сколько в вашей программе уходит времени на загрузку из файла и сколько на заполнение SQLite?

     

    Добрый день!

    Alexander, вопрос был в другом...

    Вшитые в БД механизмы импорта/экспорта работают значительно быстрее построчного чтения/обработки/записи данных.

    Экспорт таблицы в 765 тыс. строк средствами MySQL (SELECT xxx FROM xxx INTO OUTFILE) производится менее 2 сек.

    Не заменрял аналогичное действие с построчным чтением каждой из 765 тыс. строк, обработкой и последующей записью, но есть ощущение что время будет значительно больше.

    Повторюсь, вопрос был в другом: есть или нет... Альтернативные варианты реализации понятны

     

  14. 1 час назад, Alexander сказал:

    PS: а какая сложность в реализации обработчика? считать строку, по разделителю выделить данные, полученные данные подставить в параметры запроса

    Alexander, никакой сложности нет.

    Просто стандартные механизмы импорта данных их CSV-файла, реализованные в MySQL, например, позволяют существенно ускорить внесение большого объема данных.

    Обработчик на таблицу с количеством строк более 100 тыс., например, будет отнимать заментное время (и ресурсы).

  15. Добрый день!

    Подскажите, пожалуйста, наверняка кто-то сталкивался с вопросом...

    В таблицу SQLite необходимо импортировать данные из CSV-файла.

    Понятно, что можно разносить по записям, или формировать запросы INSERT INTO...

    Но если таблица достаточно большая, то процесс растянется.

    Есть ли возможность задействовать механизмы импорта на стандартных компонентах?

    И если такая возможность есть, возможно ли делать импорт с опцией обновления данных (перезапись уже существующих значений, а не добавление новых)?

     

  16. 4 минуты назад, Сергей Пьянков сказал:

    Отказы по какому-то одному приложению или по всем, где есть сетевой обмен? Подозреваю, что первый вариант, иначе бы на форумах был вал вопросов и жалоб по таким отказам. Мой личный опыт подобной проблемы не подтверждает: IPv4-сервер спокойно проходит проверку Apple (правда речь о TCP, но это ничего не меняет).

    Сергей, тоже являюсь "жертвой" таких обстоятельств. Да, согласен, не обязательно приложение будет отклонено контролем. Бывает, проходит с первого раза. Если не проходит сразу, проходит на второй или третий. Ничего не меняю, просто повторно возвращаю на проверку...

    Для меня Apple тоже проводили тестирование не только в рабочей сети, но и через мобильных операторов. Показывали результаты...

    Но в целом системы такого поведения не уловил. На Андроиде все работает прекрасно.

    Нисколько не агитирую за какое-либо решение... Каждый вибирает для себя. Просто делюсь опытом.

     

     

  17. 1 час назад, krapotkin сказал:

    тут неоднократно отмечалось, что работа с TBitmap может быть только в Synchronize. и где-то был демо код с асинхронной загрузкой картинок

    Да, я тоже по этому принципу загрузку в потоках изображения строю.

    Но вопрос в событии, в котором запускать эту отрисовку.

    Раньше делал старт потока в OnPaint, теперь так не проходит :(

  18. Большое спасибо за помощь!

    Разобрался с новым LV. Теперь радости нет предела. По мне, работать с ним стало проще. Пусть теперь приходится создавать все компоненты вручную, но, зато полный контроль и отображение без фокусов :)

    Со старым LV были свои заморочки.

    Остался один вопрос: никак не могу разобраться с загрузкой в итем картинок с веб-сервера. Картинки в итемы грузятся в потоках.

    Процедура загрузки работает корректно - проверено.

    TListItemImage создаю в OnUpdatingObjects. Но как раньше, в OnPaint не получается в него грузить картинку - выдает ошибку.

    Как понял, элемент становится доступным после OnPaint.

    Но и загрузка в OnUpdateObjects отрабатывает некорректно.

    Есть ли опыт? Буду признателен, если поделитесь...

     

  19. В 10.06.2016 в 17:46, HyperZen сказал:

    Просто это, видимо, глюк Берлина. Ведь на пустом новом проекте все работает адекватно! И без всяких дополнительных ресайзов.

    На старом проекте пришлось брать в руки бубен.

    Добрый вечер :)

    HyperZen, правильно ли понимаю: если снести LV, мигрированный из более ранней версии Delphi, то все Item.Add отрабатывают корректно?

    У меня та же ерунда. Экспериментировать не берусь пока - слишком много нагромождено, времени много уйдет. Обошелся Вашим советом (костыль с resize), но чую, что где-нибудь "старый" LV может выкинуть неожиданный финт...

    В 10.06.2016 в 14:53, krapotkin сказал:

    я еще раз в этой теме приложу тестовый проект полностью рабочий под берлин с ресайзом

    ListViewTestBerlin.7z

    За пример и разжевывание спасибо огромное! Выручили! Вот только заметил такую "Болезнь": если на форму поставить кнопку и по ней перерисовать все, возникнет баг с расчетом высоты... :(

    Пугает меня скрытыми неожиданностями Берлин :(

     

×
×
  • Создать...