Tumaso
-
Постов
331 -
Зарегистрирован
-
Посещение
-
Победитель дней
39
Активность репутации
-
Tumaso получил реакцию от Виталий Иванов в Прозрачность TlistViewItem
Равиль, я так понимаю, что вы внесли изменения в стандартный ListView. Скажите плиз, в какой версии делфи взят исходник? берлин?
Я это к тому, что при переходе на токио ModernLV нужно будет заново сливать с оригинальным исходником, правильно?
Сорри за кучу знаков "вопрос"
-
Tumaso отреагировална dnekrasov в Как вытащить коэффициент масштабирования Windows?
В модуле FMX.Helpers.Win есть две чудные функции:
function GetDCScale(const DC: HDC): Single; function GetWndScale(const Wnd: HWnd): Single; причём вторая из них учитывает особенности, начиная с восьмерки.
-
Tumaso получил реакцию от Вольдемар в Концепция интерфейса приложения для Андроида
Эффекты смены фреймов можно и без TTabControl сделать, было бы желание
-
Tumaso получил реакцию от Alex7wrt в Кнопка с картинкой
Намекаете, что приложения не существует? Существует
-
Tumaso получил реакцию от Anatoliy в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
На stackoverflow описано решение этой проблемы. Суть в том, что мы принудительно заставляем Indy использовать OpenSSL вместо BorinSSL:
1. добавляем в project deployment для андроида 2 файла: libcrypto.so и libssl.so (взять их можно на https://forums.embarcadero.com/thread.jspa?threadID=211147), в качестве Remote path для обоих файлов указываем .\assets\internal
2. убеждаемся, что в .dpr модуль System.StartUpCopy указан самым первым
3. при запуске приложения вызываем IdOpenSSLSetLibPath(TPath.GetDocumentsPath)
примечание к версии SSL - на файлы по ссылке из п.1 Google не выдает предупреждений, а на более старые версии будет ругаться
-
Tumaso получил реакцию от enatechno в Определение слабого телефона
Пользователь может изменить качество эффектов, но уж очень хочется облегчить всем жизнь. Пользователь должен запустить программу, а она по умолчанию не тормозит
В общем я решил измерять производительность при старте, как раз висит 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; Протестировал на доступных телефонах, пока определяет верно
-
Tumaso получил реакцию от #WAMACO в Определение слабого телефона
Пользователь может изменить качество эффектов, но уж очень хочется облегчить всем жизнь. Пользователь должен запустить программу, а она по умолчанию не тормозит
В общем я решил измерять производительность при старте, как раз висит 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; Протестировал на доступных телефонах, пока определяет верно