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

Лидеры

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

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

    Модераторы


    • Баллы

      1

    • Постов

      2 517


  2. Alex7wrt

    Alex7wrt

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


    • Баллы

      1

    • Постов

      508


  3. Tumaso

    Tumaso

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


    • Баллы

      1

    • Постов

      331


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

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

  1. Попробуйте через события TGrid.OnDrawColumnCell или TGrid.OnDrawColumnBackground. Там можно отрисовывать в ячейках то, что вам нужно
    1 балл
  2. Пользователь может изменить качество эффектов, но уж очень хочется облегчить всем жизнь. Пользователь должен запустить программу, а она по умолчанию не тормозит В общем я решил измерять производительность при старте, как раз висит splash-форма как заставка (она создает главное окно и после создания переключает на него и делает его главным), пользователю придется чуть дольше подождать запуска. Думаю это не проблема. Суть идеи - у меня приложение построено на фреймах, которые динамически создаю/уничтожаю. И как раз стартовый фрейм является небольшой демкой возможностей, там используется много эффектов и разных компонентов. Поэтому я создаю этот фрейм, делаю предзагрузку стилей всем компонентам фрейма (этот способ взял на этом же форуме, автор Ярослав). После этого создания фиксирую время, за которое создается скриншот этого фрейма (т.е. использую MyFrame.MakeScreenshot). И уже на основании потраченного времени оцениваю производительность железа при работе с графикой. type /// <summary> /// Производительность оборудования /// </summary> THardwarePerformance = ( /// <summary> /// Высокая производительность /// </summary> performanceHigh, /// <summary> /// Средняя производительность /// </summary> performanceMedium, /// <summary> /// Низкая производительность /// </summary> performanceLow ); function DetectPerformance(AImage: TImage): THardwarePerformance; var LTemp: TBitmap; begin // измеряем производительность оборудования CreateFrame(modeWelcome); // существующий в другом коде метод, создающий нужный фрейм LTime := Now; LTemp := Frames[modeWelcome].MakeScreenshot; try AImage.Bitmap.SetSize(LTemp.Width, LTemp.Height); AImage.Bitmap.CopyFromBitmap(LTemp); finally LTemp.DisposeOf; end; LTime := Now - LTime; // оцениваем производительность if LTime < EncodeTime(0, 0, 0, 300) then Result := performanceHigh else if LTime < EncodeTime(0, 0, 2, 0) then Result := performanceMedium else Result := performanceLow; end; Протестировал на доступных телефонах, пока определяет верно
    1 балл
  3. нету его там, не ищи. но если помучаться наверное можно сделать. там все расчеты сделаны на основе ширины контрола. заведи свою переменную с шириной и подставь вместо ширины контрола, ну и добавь скрол. потом отрисовку поменяй в зависимости от положения скрола. короче оно того не стоит)
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...