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

Tumaso

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

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

  • Посещение

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

    39

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

  1. 4 часа назад, Равиль Зарипов (ZuBy) сказал:

    поиск по форуму ModernListView, ModernLV

    Равиль, я так понимаю, что вы внесли изменения в стандартный ListView. Скажите плиз, в какой версии делфи взят исходник? берлин?

    Я это к тому, что при переходе на токио ModernLV нужно будет заново сливать с оригинальным исходником, правильно?

    Сорри за кучу знаков "вопрос" :)

  2. Отвечу сам себе - Apple не считает нужным давать сторонним разработчикам доступ к чтению СМС, поэтому ответ на мою проблему прост - легально СМС на iOS считать невозможно.

    Можно извернуться и все таки считать смски, если использовать джейлбрейк. Но это не мой путь))

  3. Давайте не мериться, у кого сколько проектов на FMX :) у меня это первый, и надеюсь, что не последний :)

    Уточняющий вопрос к FREEFAR - а какой путь вы указываете при деплое файлов (которые устанавливаются вместе с приложением) для iOS? Я указываю Startup\Documents\ и в дальнейшем формирую имя файла как TPath.Combine(TPath.GetDocumentsPath, 'имя_файла')...

  4. 49 минут назад, krapotkin сказал:

    возможно еще бы разрешения для программы посмотреть стоит

    Вот у меня и стоит этот вопрос - ГДЕ именно посмотреть/настроить разрешения для программы под iOS? :)

    Кстати, вместо Result := TPath.GetDocumentsPath + TPath.DirectorySeparatorChar  я использую TPath.Combine

  5. Столкнулся с неожиданной проблемой в iOS при работе с файлами: любые попытки чтения существующих файлов из System.IOUtils.TPath.GetDocumentsPath и любые попытки чтения/записи файлов в System.IOUtils.TPath.GetHomePath вызывают ошибку access denied. Где что нужно прописать, чтобы решить проблему работы с файлами?

  6. Я именно так и сделал - у грида сделал прозрачный фон, а для фона нужного цвета использовал ректангл с этим цветом.

    Это конечно решает проблему, но сразу возникает вопрос - что мешало разработчикам дать возможность задания цвета фона через свойство? Или еще лучше - через обработчик события, по аналогии с событием отрисовки ячейки в гриде? Хотя читая ответы бывших разрабов, могу сразу угадать ответ - "вам этого не надо" (с)

  7. Мне требуется заполнить фон грида черным цветом. События OnDrawColumnCell и OnDrawColumnBackground позволяют отрисовывать только области, занимаемые ячейками. А вот где ячеек нет, там фон по умолчанию...

    Подскажите плиз, как решить проблему?

    И сразу спрошу - а как сделать прозрачный фон у грида? Чувствую, что совет будет один - использовать стили. А без них возможно?

  8. Indy поддерживает, мы как раз и используем GZIP, текстовый трафик JSON жмет вообще хорошо. А вот с SSL у Indy есть проблемы, поэтому и смотрим в сторону THttpClient.

    От перехода удерживает пока непонятки с поддержкой gzip.

  9. 1 час назад, Равиль Зарипов (ZuBy) сказал:

    кто-то незнает про стили...

    Хорошо, покажи мне как с помощью стилей добиться того же самого эффекта, как:

    1. TGlowEffect, учитывая что тень вокруг объекта может через анимацию менять как цвет, так и глубину

    2. TInnerGlowEffect, учитывая что цвет может быть либо черным, либо белым. Если использовать картинку в качестве фона, то она масштабируется в зависимости от размеров владельца, а TInnerGlowEffect внутренние отступы держит примерно одинаковые вне зависимости от размеров владельца.

  10. Мои дизайнеры придумали такой эффект - текущий фрейм начинает уменьшается в размерах и у него увеличивается прозрачность. У появляющего фрейма наоборот - он начинает терять прозрачность и одновременно увеличиваться в размерах. Удалось реализовать, но не на всех телефонах быстро работает.

    Для реализации потребовалось, чтобы фреймы были чуть больше, чем форма

  11. TButton я не использую, из визуальных компонентов использую только TRectangle, TImage, TEdit, TLabel, TShadowEffect, TGlowEffect, TInnerGlowEffect, еще TScrollBox. Часть изображений применяю сразу к TRectangle, если нужно использовать эффект закругленных углов (т.е. когда XRadius и yRadius больше 0, TImage их у родительского TRectangle игнорирует, не помогает даже ClipChildren у прямоугольника)

    В чем беда - у TRectangle и TImage нет свойств .Images и .ImageIndex, получать изображения из TImageList приходится вручную. Не проблема, но хотелось бы это делать также просто, как у TButton.

    Про загрузку файлов в рантайме в TImageList - да, этот вариант не пришел мне в голову, каюсь.

  12. 1 час назад, RoschinSpb сказал:

    Любопытно было бы взглянуть на приложение которое работает на телефоне и грузит 50Мб картинок в кнопки во время старта.

    Узко мыслите, коллега. Картинки используются не только на кнопках, а еще как фоновые картинки на фреймах, локализация изображений для разных стран (все помнят про разный символ земного шара в разных странах?) и т.д, вариантов применения статических изображений в приложении миллиард. А 50 Мб не предел, у дизайнеров UI в моей компании очень много идей.

    По идее TImageList и должен брать на себя всю черновую работу по работе с изображениями, чтобы не приходилось использовать свои TList<TImage>, не правда ли?

  13. нет, речь про андроид

    суть в том, что когда я делал

    var
      LBitmap: TBitmap;
    begin
      LBitmap := TBitmap.Create;
      try
        LBitmap.LoadFromFile(LSomeFileName);  // здесь ок, загрузка успешна
        // начинаем что нибудь делать с этим битмапом в андроиде, получаем экспешн
      finally
        LBitmap.DisposeOf;
      end;
    end;

     

  14. Да, я сначала использовал именно TObjectList<TBitmap>, но столкнулся с тем, что на андроиде у TBitmap не было выделенного дескриптора, а если использовать bitmap у TImage, то всё ок. Честно скажу, что гуглил мало, возможно что то не допонял / не доделал. 

  15. Так суть TImageList в том и состоит, что он является коллекцией изображений. И конфигурируем мы его как правило именно в design-time, не? А если его нельзя использовать для управления 50 Мб картинками, то возникает вопрос необходимости использования этого компонента в принципе. Отключить в IDE сохранение истории конечно можно, но зачем тогда люди старались, делали такую фишку? :) Мне иногда пригождается.

    И да, я переделал работу с картинками - картинки хранятся в файлах, я их загружаю при старте приложения в TList<TImage> (вернее какие то изображения сразу, какие то при необходимости, какие то после использования в памяти уничтожаю). Работает быстро, проблемы тормозов при разработке нет.

  16. На 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 не выдает предупреждений, а на более старые версии будет ругаться

  17. 2 часа назад, RoschinSpb сказал:

    Вольдемар + valdemar 

    Компонент TImageList - один из самых задокументированных компонентов FM, также имеется демонстрационное приложение входящее в поставку Delphi, кроме того есть две статьи на русском языке про TImageList и видео с примерами работы, не говоря уже об обсуждениях на этом сайте... к чему это я? А... вот вспомнил, это я к тому, что если вы не смогли найти подходящей информации по теме, то это хороший повод задуматься о своём месте в мироздании. Кажется, программирование это не ваше призвание. Возможно в качестве кондуктора, или дворника вы бы принесли гораздо больше пользы человечеству.

    Спасибо за понимание.

    Функционал TImageList конечно хорош, но совершенно невозможно становится работать, когда в TImageList в designtime загружено например 50 Мб изображений и больше. IDE просто начинает вставать, например просто выделение любого компонента на экране может длится 5 секунд (и это на весьма и весьма хорошем компе), в папке __history общий размер версий файла формы  начинает измеряться в гигабайтах.

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