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

Лидеры

  1. IVGSoft

    IVGSoft

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


    • Баллы

      7

    • Постов

      61


  2. kami

    kami

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


    • Баллы

      3

    • Постов

      643


  3. Barbanel

    Barbanel

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


    • Баллы

      3

    • Постов

      414


  4. gonzales

    gonzales

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


    • Баллы

      2

    • Постов

      334


Популярный контент

Показан контент с высокой репутацией 14.06.2018 во всех областях

  1. В этом участке кода есть одна маленькая ошибка. Иногда это приводит к тому, что на некоторых кадрах теряется прозрачность. Я заменил на вот такое : GIF_DISPOSAL_BACKGROUND: begin LFrame.FDisbitmap.Clear(LLocalPalette[LGraphicsCtrlExt.ColorIndex].Color); MergeBitmap(tmp, LFrame.FDisbitmap, Bounds(0, 0, LFrameWidth, LFrameHeight), LFrame.FPos.x, LFrame.FPos.Y); end;
    6 баллов
  2. Год назад в одной из веток проскочила ссылка на китайский сайт (http://www.raysoftware.cn/?p=559), где предлагалось готовое решение для показа анимированных гифок средствами FireMonkey на любых платформах. Сейчас эта ссылка, как и весь сайт raysoftware.cn, упорно не открывается; по счастью, контент сохранился в гугловском кэше. Я скопировал оттуда код юнита и перевел гуглом все китайские комментарии на английский, добавив их в скобках. Там был еще сопроводительный текст, в котором автор излагал мотивы, побудившие его взяться за эту проблему; каких-то важных технических деталей я в этом тексте не увидел. Привожу весь юнит ниже и очень надеюсь, что кто-нибудь из продвинутых коллег объяснит мне, как именно этим кодом можно воспользоваться, чтобы показать пользователю анимированный файл в формате GIF. Моей программерской квалификации, к сожалению, не хватает.
    2 балла
  3. gonzales

    Пуши в IOS

    Так а в чем конкретно проблема? В коде есть OnReceiveNotificationEvent - вызывается когда придет пуш. Соответственно вместо ShowMessage(aText); пишите вызов новой формы. Если она уже создана, то просто FormB.visible:=true;, если не создана, то вызов конструктора, (примерно так FormB:=TForm.Create;, соответственно конструктор должен быть описан)
    2 балла
  4. Так у вас такой же велосипед. Сейчас он напишет «готовое решение» и тоже поставит ценник.
    1 балл
  5. Please, let us know if you find a solution of this problem)
    1 балл
  6. kami

    Хук на клавиатуру

    по тексту этой ошибки гуглится очень многое. Основной посыл: для WH_KEYBOARD, если указывать HInstance, то он должен быть инстансом dll. Потому что exe не инжектнется в чужой процесс. Можно указать вместо HInstance - 0, а последний параметр выставить в TThread.Current.ThreadID, но (повторюсь) я не уверен, что веббраузер работает только в контексте основного потока приложения.
    1 балл
  7. kami

    Хук на клавиатуру

    Было бы неплохо почитать, чем отличается WH_KEYBOARD от WH_KEYBOARD_LL. Принципы действия абсолютно разные. Вполне возможно, что окна браузера находятся в другом потоке. Посему для начала экспериментов вам нужен именно WH_KEYBOARD_LL Ну так нужно же понимать причину - почему он равен нулю. Обращаемся к первоисточнику. Смотрите, что вернется и узнавайте причину. Можно так: if CurrentHook = 0 then RaiseLastOSError. Нет. Здесь имеется ввиду не разрядность операционной системы, а именно разрядность процессов, запущенных в ней (в 64-битный процесс может быть загружена только 64-битная dll. В 32бита - 32). Кроме того, _LL хуки не зависят от разрядности процесса, поскольку работают в контексте установившего хук потока, им dll не требуется.
    1 балл
  8. kami

    Хук на клавиатуру

    Да куда угодно. Любой модуль, но скорее всего - модуль той формы, на которой лежит веббраузер (его же нужно "обойти"). Там же (например - в конструкторе / деструкторе формы) - регистрация и удаление хука. Ну вот например: https://ru.stackoverflow.com/a/538552/192901 (просмотрел бегло, но криминала нет, по крайней мере - система не помрет, что, кстати, весьма возможно при использовании глобальных хуков). вместо SendMessage подставить myForm.OnKeyDown(...); возможно - придется несколько поменять внутреннюю логику самого хука. Но основа останется без изменений: внутрь хука получается структура, описывающая "что произошло с клавиатурой". Вы ее обрабатываете, вызываете нужные методы и отдаете управление опять системе.
    1 балл
  9. Есть старый проект где я реализовал хук на клавиатуру, без использования длл. Проект для дельфи 7, соотв. никакого юникода. Подробности сейчас не вспомню, помню лишь что я недели две исследовал как это работает. Могу выслать в личку если интересует.
    1 балл
  10. Barbanel

    XCode версия

    С последним апдейтом (10.2.3) самые критичные насколько мне известно пофикшены. Как минимум, я критичных глюков не замечаю, есть мелочи разумеется, но к я ним привык и называю их по именам))) А до фиксов да, было прикольно: иос собирали в Токио, андроид - в берлине)))
    1 балл
  11. Промежуточный итог. Переписал компонент используя нативный канвас для отрисовки. Скорость на Андроиде на порядок выше. Никаких тормозов. Макс, еще раз большое спасибо за наводку! :)
    1 балл
  12. Тык тык https://github.com/zhaoyipeng/FMXComponents/blob/master/ComponentsSource/FMX.Graphics.NativeCanvas.pas
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...