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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    264

Сообщения, опубликованные Равиль Зарипов (ZuBy)

  1. procedure CloseApp;
    begin
    {$IFDEF ANDROID}
      TAndroidHelper.Activity.moveTaskToBack(true);
      // MainActivity.finish;
    {$ELSE}
      Application.Terminate
      // Application.MainForm.Close;
    {$ENDIF}
    end;
    

     

     

    procedure TFormMain.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    begin
      inherited;
      if Key in [vkEscape, vkHardwareBack] then
      begin
        CloseApp;
        Key := 0;
      end;
    end;
    
  2. 1 час назад, МихаилЪ чайковЪ сказал:

    В Windows вся проблема. Как известно, в этой ОС можно нажимать как мышью, так и пальцем. Вопрос: как сделать так, чтобы OnTap срабатывал не только на палец, но и на мышь?

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

    Но это не точно, нужно тестить

     

  3. 7 часов назад, x11 сказал:

    Т.е. служба почему-то закрывается аварийно.

    емба сломала это еще в Берлине, в Токио не починили.

    Службы "нормально" работают только в Сиетле

  4. 23 часа назад, Akad сказал:

    Почему я не хочу 100500 классов? Потому что там везде придётся прописать один и тот-же код, а при доработках моих коллег править придётся код в более чем одном месте. А парсинг там и так не простой в плане дикого количества ньюансов. Так что это  равносильно прямо пропорциональному увеличению проблем, которые начнут вылазить, например, через месяц. Причём в среднем 1 раз в месяц.

    хотите облегчить себе жить? ваших коллег не следует допускать к бэкенду.

    изучите все вместе структуру json и приведите ответы сервера в порядок. 

    я давно для себя придумал структуру ответов и незнаю горя

    для ошибки

    {
      "status": "ERROR",
      "text": "Тут текст ошибки"
    }

    для данных структура всегда одна - data ВСЕГДА массив, ну а в элементах массива уже что хотите

    {
      "status": "OK",
      "data": [
        {
          "id": 1,
          "name": "asdasd"
        }
      ]
    }

    есть такая штука (писалось для себя), ну и не боитесь использовать де/маршалинг 

  5. 6 часов назад, Akad сказал:

    Сейчас с ходу что он не распарсил не прилетело, но вот распарсил криво:

    {"0":{"PRODUCT_ID":"808","OPTIONS":null,"AMOUNT":1,"SECTION_ID":"35"},"additional_849":{"AMOUNT":3,"TYPE":"additional","IS_ADDITIONAL":true,"ADDITIONAL_ID":849,"ID":"additional_849","PRODUCT_ID":"additional_849"},"additional_850":{"AMOUNT":"2","TYPE":"additional","IS_ADDITIONAL":true,"ADDITIONAL_ID":850,"ID":"additional_850","PRODUCT_ID":"additional_850"},"additional_851":{"AMOUNT":2,"TYPE":"additional","IS_ADDITIONAL":true,"ADDITIONAL_ID":851,"ID":"additional_851","PRODUCT_ID":"additional_851"},"additional_852":{"AMOUNT":2,"TYPE":"additional","IS_ADDITIONAL":true,"ADDITIONAL_ID":852,"ID":"additional_852","PRODUCT_ID":"additional_852"}}

    
    Obj := SO(s); 
    Assert(obj.AsArray <> nil); 

    Сработал assert, хотя root - это массив.

    Основная проблема стандартной библиотеки - это кривость работы с массивами [], и постоянные ассерты, когда нет элемента. Ну и общая громоздкость кода парсинга. То есть если структура JSON изначально известна и "стандартна", то проблем не будет. А если шаг влево, шаг вправо, то...

     

    правильно сработал, это не массив а объект. смотрите внимательно

  6. 21 час назад, Alisson R Oliveira сказал:

    Доброе утро ... жаль открывать тропик после долгого времени, но я утверждал приложение на других устройствах, что панель навигации не является физической (назад, дома, окнами), и с этим она становится полностью прозрачной, а элементы управления белыми, например могу я решить ???

    благодарный

    попробуйте последнюю версию

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