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

ruslan

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

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

  • Посещение

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

    15

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

  1. fgActivityDialog.Show; // показываем Activity
    Request.ExecuteAsynch(
      procedure 
      begin
         if not Request.Response.Content.IsEmpty then
         begin
            lv.beginupdate;
               // добавляем итемы
            lv.endupdate;
    
            fgActivityDialog.Hide;
         end
      end
    );

    Не ?

  2. Как Вы думаете, к чему приведет выполнение следующего кода ?

    StartTime:= Now;
    
    while ( not Embarcadero.EOF ) or ( Embarcadero.Bugs.Count > 0 ) do
    begin
      Trolling;
      if MonthBetween(Now, StartTime) > 12 then
      Embarcadero.Destroy;
    end;
    
    
    if ( Embarcadero.Bugs.Count > 0 ) then
    begin
      while Embarcadero.Members.Count > 0 do
      Embarcadero.Members[0].Destroy;
      
      Mozg.Delete( Mozg.IndexOf('Delphi') );
    end else 
           exit;
    
    
    

     

  3. 1) Спасибо за отклик.

    2) Мне не нужен "свой провайдер". Я могу отправить пуш прямо на device_token. Вопрос в том, как мне "подписаться" на прием пушей. 

    3) в FMX.PushNotification.Android  и так есть необходимый сервис для работы с GCM - TGCMPushService

    и в принципе, сделав

    gcm:= TGCMPushService.create;

    gcm.Register('мой app_id');

    можно вытащить DeviceToken и это работает и я это знаю

    4) Касается не только пушей

    Ну вот объясните мне: ЗАЧЕМ описывать типы в implementation ?? ну ЗАЧЕМ ? Из-за этого нельзя унаследоваться от типа, нельзя устранять "баги", потому что эти "баги" задействуют private\protected члены, к которым не получить доступ ни через class-хелперы, ни как по другому.

    Приходится тупо копи-пастить в новый юнит и там править баги, наследоваться и т.п.

     

    Тот же самый баг с камерой, кот. не исправляется еще с XE<хз_какой_старой> , исправляется ОДНОЙ строкой кода.

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

     

    Может я чего-то конечно не понимаю, но вот какой вообще смысл объявлять типы в implementation, а не как все белые люди ?

    Че-то меня опять понесло...

     

    А если по теме, то идеально конечно было бы пригласить в топик человека, который писал "систему" push-уведомлений. Думаю он смог бы многое пояснить.

    Мне кажется очень многих разработчиков волнует вопрос приема\отправки push'ей, т.к. это единственный(поправьте если не прав) способ гарантированно уведомить юзера 

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

    Опять понесло...

     

    Тема очень актуальная уже для нескольких разрабов, которые рискнули начать фаирманчить под десктоп\иос\андроид.

     

    Поправьте если что не так пишу\понимаю\делаю

    Заранее спасибо за помощь

  4. День добрый. Прошу совета.

    Необходимо реализовать получение push-сообщений на андроиде.

     

    Присутствует следующее:

    - проект в Google Console. Имеются project id и project number;

    - клиентское приложение на FM

    - работающий ruby-скрипт,который можно привязать к любому AppID, способный отправлять пуши через GCM(Google Cloud Messanging)  на конкретный device_token  и доказавший свою корректную работу.

     

    Про стандартные BAaS, вроде Kinvey и Parse, кот. раздают СВОИ token'ы слышал -> смотрел -> делал -> не понравилось.

    Мне не нужен чужой промежуточный не дешевый AppServer только для отправки push-уведомлений.

     

    И так, каким образом я могу реализовать регистрацию устройства напрямую в GCM, получить оттуда DeviceToken, и подписаться на push'и.

     

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

  5. Если через биндинг в дизайне, то, по-моему, только делать свой компонент наследник от TListBoxItem плюс наследника от TListBox. Вроде через биндинг у дизайне доступны именно published свойства...

  6. День добрый. Уважаемые разработчики, объясните мне, тупому человеку:

     

    1) откуда постоянные подвисания среды при простейших операциях, таких как: ввод текста, F12, Ctrl + Click. причем подвиснуть может как на 1 секунду, так и на целую минуту.

    Причем не факт, что отвиснет

    2) почему очень часто крашится компиляция проектов под мобильные платформы с кодом ошибки что-то типа AV-xxxxxxxxx. Помогает только перезапуск среды

    3) почему при нажатии F9 среда может намертво зависнуть

    4) почему в самый непредсказуемый момент среда может тупо зависнуть и через пару секунд (а то и минут) винда может выдать "Работа программы завершена"

    5) почему автодополнение кода часто не работает, или сильно глючит.

    6) почему иногда при открытии юнита начинает бешано сжираться оперативная память. Bds.exe с 400мб может резко съесть + 600мб - 1 гб

     

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

  7. День добрый. 

    Может ли кто-нить подсказать, каким образом можно отключить выделение итема в TreeView при прокрутке на мобильном девайсе.

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

    В листбоксе и листвьюве ничего не выделяется

     

    Спасибо.

  8. Столкнулся с таким вот "нюансиком".

     

    Нужно было программно прокручивать скроллбокс в самый низ.

     

    Логично было бы делать так:

    ScrollBox1.ScrollBy(0, ScrollBox1.ContentBounds.Height * -1 );

    т.е. как бы скроллить вниз на величину равную высоте контента.

     

    Результат: скролит вниз, НО не до конца. не "докручивает" примерно пикселей 50-80;

     

    В результате родилось вот такое вот "прости господи" решение:

     

    TVertScrollBox_Helper = class helper for TVertScrollBox
        procedure Scroll_Down;
    end;
    
    procedure TVertScrollBox_Helper.Scroll_Down;
    begin
      // здесь vScrollBar.Value = 0, vScrollBar.Max = 4500;
      vScrollBar.Value:= vScrollBar.Max;
      // здесь vScrollBar.Value = 3800, vScrollBar.Max = 4500;
      Application.ProcessMessages; // без этого никак не хочет. т.е. даем скроллбоксу "глюкануть" 
      vScrollBar.Value:= vScrollBar.Value + 100; // поправляем "недостачу"
      // здесь уже все норм
    end;

    так вот хотелось спросить: это баг, фича, или багофича ?)

     

    п.с. может и я олень чегото непонял. обясните пожалуйсто

     

     

     

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