ENERGY

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    18

Все публикации пользователя ENERGY

  1. Добавить в кнопку TGlowEffect . Также здесь я описал как сделать пульсирующую кнопку без кода.
  2. А есть какие то предложения, как легко воспроизвести этот баг, чтобы в саппорт его отправить?
  3. @RoschinSpb А за что Крюкова ругали? Фактически Токио не рабочая под андроид, там множество проблем - многие функции и некоторые компоненты просто не работают, FPS низкий. Связано это с тем, что перенесли главный Delphi поток в java UI поток. Также там и с iOS есть проблемы. Решение перейти на Berlin Update 2 и ждать обновления к Tokyo . https://quality.embarcadero.com/browse/RSP-17162 https://forums.embarcadero.com/thread.jspa?threadID=248497
  4. А вы установили все размеры SplashScreen'a в свойствах проекта? А вы правильно сделали 9 patch png? Т.е. если загрузить вашу 9.png картинку в этот редактор, то он не должен растягивать саму картинку, а только черные края, отмеченные в этой проге.
  5. В чем проблема, обычная форма, без заголовка, показывай в углу, учитывая высоту панели пуск.
  6. @Равиль Зарипов (ZuBy) Не знал. А в Tokyo много чего печального. Android платформа фактически не рабочая. А баг с утечкой TAniIndicator отправили в QC?
  7. Делаю Grid из TListView. В случае если в DynamicAppearance много Drawables и они не помещаются по горизонтали - нужно чтобы TListView включал горизонтальный скролл дополнительно к вертикальному. Он там есть вообще? Возможно его как то включить? How to enable Firemonkey TListview horizontal scroll? Я делал горизонтальный скролл кидая ListView на HorizScrollBox и устанавливая ширину списка. Да это работает, но проблема в том что тогда вертикальный скролбар ListView прячется при скроле в HorizSrollBox (точнее прячется правая сторона ListView уезжая в HorizSrollBox - это нормально поведение).
  8. Upd: Пожалуйста проголосуйте. Думаю это всех касается, т.к. проблема связана и с TImageList и с TImage. https://quality.embarcadero.com/browse/RSP-18210 Сейчас столкнулся с большой проблемой перед самым релизом для заказчика.. 17 картинок, разного размера. Сейчас в TImageList сетка рисуется постоянно при обновлении Source каждой картинки. C каждым разом становится сетка четче. Если раньше я просто обновлял на новые картинки, и таким образом решал проблему, то сейчас после обновления source картинок сетка остается на многих картинках, причем я даже не закрываю TImageList . Только начинаю замещать одни картинки, на других появляется сетка.. И вот что теперь делать незнаю.. Да кстати картинки портятся и в TImage со временем в Design Time. Сетка означает что картинку много раз масштабируют. Но почему не сохраняют оригинал, это мне не понятно.. Что тут можно придумать? Delphi Berlin Update 2
  9. А смысл, баг уже открыли и назначили. Тем более баг воспроизводится. Так напишите это им, в комментах к багу.
  10. Я делаю проще, вот мультиплатформенный вариант: обычная форма, Transparent := true; на форме AniIndicator Align = HorzCenter. В результате получаем отображается только AniIndicator по центру экрана. Можно добавить и label на Tlayout вместе с AniIndicator, а у Tlayout поставить Align = HorzCenter или VertCenter. Форму конечно, как и все остальные формы создавать нужно динамически и уничтожать когда не нужно. Можно еще сделать чтобы весь остальной фон, кроме текущей формы был затемненный - установите цвет у формы с AniIndicator в #AA000000 (Kind = Solid). А можно еще сделать чтобы фон плавно затемнялся после появления загрузочной формы. class procedure TfrmDial.ShowForm; begin if frmDial = nil then frmDial := TfrmDial.Create(nil); frmDial.Fill.Color := TColorRec.Null; frmDial.Show; Application.ProcessMessages; TAnimator.AnimateColor(frmDial, 'Fill.Color', FADE_OUT_COLOR, 0.3); end; И да кстати, Tokyo пока нельзя использовать для разработки Android приложений, до выхода первого Update, там есть критические баги, скорее всего проблема ТС - как раз связана с этими багами.
  11. Вот здесь посмотрите https://github.com/FMXExpress/Firemonkey/tree/master/Embarcadero/XE6/ObjectPascal/Cubes
  12. А смысл в таких проверках. Если перебрасывать со стрима в стрим - то может и не воспроизводится. Проблема то возникает только если что-то делать в Design Time. Среда работает только в Windows, поэтому такие иконки будут на всех платформах при конечной сборке.
  13. @ksvsvk Ну так удалите среду полностью, а затем поставьте с нуля, поставив в инсталяторе галочки на Android SDK. Программа откомпилированная на старшем API будет работать и на старых версиях Android (вообще с Delphi от 4.0.1 - 7). В общем вам на это не нужно обращать внимания, до тех пор пока вам не понадобится какая то из функций из Android API (вызвать вручную) - там уже нужно ориентироваться на справку и искать альт. методы которые народ использовал в предыдущих версиях.
  14. Нужно сделать компонент TGrid. Стандартный Grid не подходит, потому что нужно чтобы строки (raws) были разной высоты, а также чтобы была возможность соединять (сливать) ячейки. Я решил сделать его на основе TListView и его DynamicAppearance. Использовать кастомные объекты, отнаследованные от TListItemObject + возможность рисовать на Canvas каждого ListItem, например прямоугольники. Т.к. колонки он не поддерживает, есть идея использовать THeader и подстраивать их под размер своих колонок. Также важно быстродействие компонента. Как вы думаете есть ли в этом смысл? Возможно кто-то уже занимался подобным, и может что-нибудь посоветовать. Спасибо.
  15. Вы в курсе что Embarcadero рекомендует использовать API которое идет по умолчанию со средой, и не рекомендует сторонние не проверенные со средой версии? У меня на Berlin update 2 стоит 24.3.3 - версия которая пришла со средой, все работает стабильно уже длительное время.
  16. @krapotkin Примерно так: Вопрос в том, возможно ли из класса компонента, управлять кнопками? Напр. позиционировать их над ListView, менять их ширину итп ? Конечно лучше их будет перекинуть внутрь ListView, но я не знаю как сместить все ListItems вниз, плюс они же будут скролиться что нежелательно. Вот и спрашиваю как лучше сделать.
  17. Я написал в первом посте основную причину. И вообще это желание заказчика. Ярослав, подскажите пожалуйста что можно придумать с кнопками-колонками, можно ли их отрисовать над компонентом (сверху), и управлять ими из класса компонента? Хотя бы примерно намекните как это лучше сделать? У меня просто опыта в разработке визуальных FMX никакого, я делал только визуальные компоненты VCL и KOL MCK.
  18. Ingalime Честно говоря это больше похоже на проблему компонентов PushEvents или Kinvey, которые и отправляют эти данные при старте программы без DeviceID, чем на проблемы от сервера Kinvey. Ну да я этим сервисом не пользовался, видимо пронесло
  19. У меня пока не настолько высокая квалификация в написании fmx компонентов, чтобы делать нативные реализации под какую то платформу. Поэтому я решил взять за основу TListView и сделать из него Grid, в принципе там все понятно, единственно не знаю как добавить кнопку-колонку в этот компонент или НАД ним..
  20. 1. Можно ли установить разную высоту у ячеек (точнее raws)? 2. Можно ли объединять ячейки? 3. Если писать свой компонент, и отнаследоваться от ScrollBox - то при отрисовке всех ячеек, будут ли отрисовываться невидимые ячейки или TscrollBox игнорирует и не отрисовывает невидимую часть? Или лучше стоит отнаследоваться от TScrollContent и высчитывать самостоятельно? Компонент не будет связан со стилями. Как будет быстрее в плане производительности компонента? 4. Что лучше для этого случая TScrollContent или TScrollBox? 4. Если 1 и 2 - нет, то придется писать свой компонент - возможно у вас будут какие то рекомендации на этот счет. Спасибо. Очень жду ваш ответ. @RoschinSpb
  21. Пока без редактирования. @krapotkin Спасибо, я это все уже смотрел, а компонент Равиля использую в своих программах. Тут больше вопрос стоит ли это делать на основе TLIstView ? Пока с отрисовкой и позиционированием объектов на Item (разбивку на колонки) все понятно, я уже это делал когда-то. Вопрос как нужно делать колонки, точнее кнопки колонок. Как сделать так чтобы они не скролились вместе с содержимым ListView? 1. добавить SpeedButton в сам ListView и каким то образом подвинуть вниз весь контент на высоту кнопки. 2. Или есть ли возможность нарисовать эти кнопки над компонентом из класса компонента? Я вот не знаю, но догадываюсь что есть. Может @Brovin Yaroslav сможет подсказать? Мне кажется второй вариант можно легко реализовать, вот только не знаю как пока. Спасибо.
  22. А что за дубляж токенов при удалении, как же их удалишь из своей базы, если программа даже не запускается при удалении? Или я не так понял про какие токены идет речь?
  23. Есть же уже бесплатные серверы, тот же Google Firebase и Kinvy. Думаете кто то будет платить деньги, когда есть бесплатные стабильные альтернативы от известных компаний? Сомневаюсь.
  24. Как прочитать все свои сообщения Push, если пришло больше одного сообщения, при старте программы? Дело в том, что код который на форуме популярен, показывает только одно сообщение, только то, которое выбрано. Пример: отправляю 3 сообщения, все 3 висят в статус баре, при загрузке программы показывает только то, по которому тапнули из статус бара, остальные игнорит. А мне нужно их все 3 сохранить. var vCurNotification : TPushServiceNotification; begin for vCurNotification in fPushService.StartupNotifications do begin OnReceiveNotificationEvent(Self, vCurNotification) end; end; Push сервис получаю так, как указано в статье Равиля: procedure TPushNotify.UpdateConnection; begin fPushService := nil; fPushServiceConnection := nil; {$IF defined(ANDROID)} fPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); fPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := ServerSenderID; {$ENDIF} {$IF defined(IOS) AND defined(CPUARM)} fPushService := TPushServiceManager.Instance.GetServiceByName (TPushService.TServiceNames.APS); {$ENDIF} if Assigned(fPushService) then begin fPushServiceConnection := TPushServiceConnection.Create(FPushService); fPushServiceConnection.OnChange := OnServiceConnectionChange; fPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; fPushServiceConnection.Active := true; end; end; ОК, выберем такое поведение - пусть юзер выбирает каждое сообщение, тапнув по нему в статус баре и читает его в программе. Я бы и так сделал, но тогда возникает проблема с очисткой в статус баре. Я так понял сообщения можно удалить только все (CancelAll) - т.е. юзер тапнул на одно сообщение, прочитал и затем программа очистила все остальные.. Вот в чем проблема. Странно почему нет нормального механизма..
  25. Спасибо, но уже не успею с этим разобраться, нужно уже сегодня сдавать. Чувствую не зря он там закомментирован.