Лидеры
Популярный контент
Показан контент с высокой репутацией 19.01.2015 в Сообщения
-
Освобождение динамического массива. Delphi XE7
Satellite отреагировал Brovin Yaroslav за вопрос
Добрый день, Нужно прочитать: Как правильно удалять контролы в RunTime? Пользоваться Free или DisposeOf?1 балл -
Нужна книга
ivadimos отреагировал Brovin Yaroslav за тема
У меня есть уже несколько глав на книгу. Но на их написание ушло много времени. И эта работа требует очень много дополнительного вне рабочего времени. Пока на текущий момент я думаю о создании электронных видео курсов. Это требует от меня меньше требование на оформление книги и тд. При этом я могу создавать отдельные курсы по интересным тематикам и их публикация не требует от меня создания всех курсов сразу. Если это интересно, то вы можете высказать какие темы вы хотели бы видеть в курсах и какие сами курсы.1 балл -
Есть ли в fmx класс TImageList?
Pavel Vasilev отреагировал Brovin Yaroslav за вопрос
На данный момент (до версии RAD Studio XE5) FireMonkey не имеет компонент TImageList. Однако, для хранения графических ресурсов отлично подходит TStyleBook. Общая идея сводится к добавлению именованных графических ресурсов в TStyleBook в контейнере TImage. Затем мы каждому TImage задаем имя через StyleName. И затем в нашем коде уже по строковому идентификатору достаем нужную картинку. Рассмотрим теперь это на практике. Создадим приложение, которое будет вытаскивать картинку по имени из TStyleBook и отображать его в контейнере TImage. 1. Создаем TStyleBook. Перетаскиваем его палитры компонентов (Tool Palette) в дизайнере на форму. Так же на форме я разметил кнопку и TImage для отображения выбранного изображения. 2. Открываем дизайнер стилей и добавляем компонент TImage, путем перетаскивания TImage в корень Structure Panel (панель с деревом компонентов формы). 3. В TImage загружаем картинку и называем картинку через TImage.StyleName. В моем случае изображение андроида и название - 'android'. 4. Обратите внимание, что RAD Studio XE5 поддерживает картинки разного dpi для четкой отображения на экранах с разными dpi и Экранным масштабом (Scale). На рисунке выше, я загрузил два разрешения картинки, для обычных экранов, и экранов с удвоенной плотностью пикселей. Это актуально для мобильных платформ и OSX с экранами ретина. 5. Пишем метод, который вытащить картинку по имени: function TForm4.GetImage(const AImageName: string): TBitmap; var StyleObject: TFmxObject; Image: TImage; begin StyleObject := ImageBook.Style.FindStyleResource(AImageName); if (StyleObject <> nil) and (StyleObject is TImage) then begin Image := StyleObject as TImage; Result := Image.Bitmap; end else Result := nil; end; Каждый объект FireMonkey TFmxObject предоставляет способ для поиска среди дочерних объектов объект с указанными именем StyleLookup. Доступ к корню всех стилей в StyleBook является свойство TStyleBook.Style. Далее ищем у корня стиль с нужным именем картинки. Если стиля нету, то метод вернет nil. Иначе проверяем, что стиль есть и он экземпляр контейнера TImage. Далее просто выбираем картинку через свойство Bitmap. 6. Вытаскиваем картинку и отображаем ее в TImage на форме. procedure TForm4.Button1Click(Sender: TObject); var Bitmap: TBitmap; begin Bitmap := GetImage('android'); if Bitmap <> nil then Image1.Bitmap.Assign(Bitmap); end; Вот в принципе и вся идея. Эту идею можно обобщить, сделав отдельный компонент с быстрой загрузкой картинок. Но это уже практика. Пример можно скачать тут: ImageBook.zip1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00