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

zairkz

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

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

  • Посещение

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

    12

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

  1. Попробуйте свернуть приложение (only Droid)

    uses Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText;
    
    procedure TForm_Main.AppMinimal;
    {$IFDEF ANDROID}
    var
      Intent: JIntent;
    {$ENDIF}
    begin
    {$IFDEF ANDROID}
      Intent := TJIntent.Create;
      Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
      Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);
      Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      TAndroidHelper.Activity.startActivity(Intent);
    {$ENDIF}
    end;

     

  2. Честно не думаю что чем-то помогу, работаю только с INDY.

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

  3. Может элементарные вещи, но хочу уточнить пару моментов:

    0. HTTPclient - это ведь INDY компонент, TidHTTP?

    1. Запросы каждые 10 секунд, на время выполнения операции отключается ли таймер?

    2. Отлавливаете ли exception в запросах HTTPClient?

    3. Включен и работает ли TimeOut в запросе HTTPClient?

    4. HTTPclient создается динамически для каждого запроса или статичный компонент?

    5. Если сервер возвращает ошибку (правильную ошибку которую вы ожидаете) или же заканчивается TimeOut запроса какие действия? Таймер продолжает работать или остановка процесса?

    6. При успешном выполнении операции вызывается Синхронизация или же визуальных действий не происходит?

  4. Лучше сделайте сразу правильно, все равно придете к этому, при загрузке фото на сервер переименовывайте файл, общепринятый вариант дать определенное стандартное имя, например наименование вашего проекта и время в формате unix, например:

    Name+1424238237362, далее от имени сгенерировать MD5 хэш, и записать его в базу, после чего вернуть в ответ имя нового файла если нужен. Таким образом даже если будут одинаковые файлы имена не повторятся, а вот Random без проверки точно повторится, да и проверять надо постоянно базу шерстить.

  5. Извиняюсь что долго, перепроверьте процедуру, с размером облок вроде все нормально:

    procedure TForm2.ChatUp(UsID: integer; LastId: integer; CText: string);
    var
      Labb: TLabel;
      Marg: Single;
      LT: TLayout;
    begin
      LT := TLayout.Create(PR);
      LT.Parent := PR.Content;
      LT.Margins.Top := 2;
      LT.Align := TAlignLayout.Top;
      LT.Position.Y := PR.ContentBounds.Height + 50;
    
      Marg := PR.Width * 0.20;
    
      Labb := TLabel.Create(PR);
      Labb.Parent := PR;
      Labb.Align := TAlignLayout.Top;
      Labb.AutoSize := True;
      Labb.WordWrap := True;
      Labb.TextSettings.WordWrap := True;
    
      if UsID = 0 then
      begin
        Labb.Margins.Left := Marg;
        Labb.Margins.Right := 4;
        Labb.TextAlign := TTextAlign.Trailing;
        Labb.StyleLookup := 'labelchat_green';
      end
      else
      begin
        Labb.Margins.Right := Marg;
        Labb.Margins.Left := 4;
        Labb.TextAlign := TTextAlign.Leading;
        Labb.StyleLookup := 'labelchat_white';
      end;
    
      Labb.NeedStyleLookup;
      Labb.Text := ' ' + CText + ' ';
      LT.Height := Labb.Height + 4;
      Labb.Parent := LT;
    
      if UsID = 0 then
        Labb.Align := TAlignLayout.Right
      else
        Labb.Align := TAlignLayout.Left;
    end;

    По поводу очистке

    Опишите клас:

    TOpenScrollBox = class(TPresentedScrollBox);

    до TForm_Main = class(TForm)

    ...

    и процедурка

    procedure ClearChildren(AScrollBox: TPresentedScrollBox);
    begin
      Assert(AScrollBox <> nil);
      TOpenScrollBox(AScrollBox).Content.DeleteChildren;
      AScrollBox.Repaint;
    end;

     

     

  6. Ну во первых у вас не прогрузились стили, попробуйте использовать процедуру по предварительной прогрузке стилей в теме ниже,

    Во вторых можно попробовать DisableDisapear, с небольшим количеством компонентов вполне нормальное решение, тоже в теме ниже: 

    В третьих например можно разместить скрытый TImage на вкладке TabItema, при этом разместить контролы в Лайауте и при анимации снять скриншот Лайаута, затем скрыть Лайаут и показать Timage. С TabControl я не пробовал, но с MultiView (Push - выталкивание меню в iOS) вполне пригодна 

  7. Огого Dimsa на форуме!) Вчера из за вас зарегился на твитере первый раз в жизни, но так и не понял как в личку то написать!))

    Очень хочу помочь в развитие Asteroids vs You, движок еще не ковырял но FPS поражает, могу ли я предложить сценарий геймплея, нарисовать персонажей, текстуры, спрайты и т.д. вообщем всё что связано с графикой. Если заняты сильно развитием движка, а на игрушку нет времени то наверно скоро достану вас вопросами)

  8. Я не знаю что там в недрах в ListView, но по скорости скролла данная реализация поспорит с многими нативными приложениями, авторы ListView молодцы, а реализация колонок Zuby как всегда на высоте!))

    Тест (более 2000 элементов, с динамической подгрузкой картинок)

  9. 2 часа назад, Вадим сказал:

    Ребят такая проблема: работаю над приложением под андроид на QT Qml, проблема заключается в том, что мне необходимо через webview открыть свою html страницу локально через ресурсы. Не могу решить этот вопрос. Кто может знает как? Помогите))))


    WTF? Можно поподробнее?) но кажется вы форумом ошиблись

  10. 33 минуты назад, walexw сказал:

    Налетел на те-же грабли. Разные процедуры для OnItemClick и OnButtonClick

    С OnItemClick никаких проблем, а при клике по кнопке (OnButtonClick) сначала срабатывает OnItemClick а уже затем кнопка.

    Неужели нет никакого способа развести эти процедуры, кроме как высчитывать попадание пальца (мышки) в Rect кнопки?

    procedure TForm1.ListView1ItemClickEx(const Sender: TObject; ItemIndex: integer; const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
    begin
      if ItemObject is TListItemTextButton then
      begin
       //Bla Bla Bla вообщем сюда перенесите OnButtonClick .
      end;

    //Next Bla Bla Bla
    end;

  11. 32 минуты назад, kami сказал:

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

    Декларацию можно подавать, насколько я знаю, и в электрическом виде.

    Мы тоже подаём в "электрическом" виде, через розетку 220В :D

  12. Можно помучаться с TListView, но я остановился на TPresentedScrollBox и стилизованных Label'ах (облачки сообщений, под разные scale на png 9patch), скорость скролла хорошая, плюс есть боунсы и тд.

    Приложил исходники проекта, также в архиве отдельно chat.style

    procedure TForm2.ChatUp(UsID: integer; LastId: integer; CText: string);
    var
      Labb: TLabel;
      Marg: Single;
      LT: TLayout;
    begin
      LT := TLayout.Create(PR);
      LT.Parent := PR.Content;
      LT.Margins.Top := 2;
      LT.Align := TAlignLayout.Top;
      LT.Position.Y := PR.ContentBounds.Height + 50;
    
      Marg := PR.Width * 0.20;
    
      Labb := TLabel.Create(PR);
      Labb.Parent := PR;
      Labb.Align := TAlignLayout.Top;
      Labb.AutoSize := True;
      Labb.WordWrap := True;
      Labb.TextSettings.WordWrap := True;
    
      if UsID = 0 then
      begin
        Labb.Margins.Left := Marg;
        Labb.Margins.Right := 4;
        Labb.TextAlign := TTextAlign.Trailing;
        Labb.StyleLookup := 'labelchat_green';
      end
      else
      begin
        Labb.Margins.Right := Marg;
        Labb.Margins.Left := 4;
        Labb.TextAlign := TTextAlign.Leading;
        Labb.StyleLookup := 'labelchat_white';
      end;
    
      Labb.NeedStyleLookup;
      Labb.Text := ' ' + CText + ' ';
      LT.Height := Labb.Height + 4;
      Labb.Parent := LT;
    
      if UsID = 0 then
        Labb.Align := TAlignLayout.Right
      else
        Labb.Align := TAlignLayout.Left;
    end;

    Первые признаки шизофрении:

    2016-03-16 19-19-21 Form2.png

    Chat.zip

  13. 14 минуты назад, Евгений Корепов сказал:

    А если снять галочку с "$(BDS)\lib\android\release\x86\libnative-activity.so" это не исключит Intel Atom из списка поддерживаемых устройств в Google Play? Мне вот не на чем проверить. Есть у кого устройства с Intel Atom? Могу на каком нибудь своем опубликованном приложении протестировать.

    Нет не исключит. Проверенно 

  14. 2 минуты назад, Евгений Корепов сказал:

    Тут вы не правы - на не поддерживаемое устройство нельзя установить приложение и соответственно поставить оценку. От оценки количество новых пользователей зависит на прямую. Когда я внес пол сотни не поддерживаемых устройств вручную в консоли разработчика, приложению с 100`000+ установок, средняя оценка поползла вверх и динамика новых установок значительно улучшилась.

    Да Вы правы, тогда нужен точный список не поддерживаемых устройств)

  15. А еще вроде как новые устройства на Intel Atom поддерживают эмуляцию, поэтому вам только старые устройства отключить на которых приложения вообще не запустятся. На эмуляторе Intela нормально все работает если правильно делать. А "работающие и пользующиеся популярностью приложения" наврятли оно таким станет, если у ~30% пользователей не будет возможность даже скачать (Допустим 30% скачало, из них 10% не запустилось). Кроме того все надеемся на новые версии студии в котором будет поддержка Intel

     

  16. Prof не бесполезна для работы под Windows. Если нужны мобильные платформы - придется брать Addon.

    А где в прайсе инфа об Add-on, или все таки ценовую политику пересмотрели?

    Professional теперь точно с исходниками??

    И как точно понять? -> Optional for Development of Universal 32-bit/64-bit iOS apps and Android apps including Lollipop.

     

    post-412-0-10461000-1457621394_thumb.png

     

    http://www.embarcadero.com/ru/app-development-tools-store/delphi

  17. у меня четкое ощущение, что при необходимости делать что-то подобное я приму решение рисовать все это самостоятельно

    рассчитать что должно быть на экране, и в цикле прорисовать 10 панелек гораздо проще укрощения неприспособленных компонентов ))

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

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