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

Иконки в ListView


rakhmet

Вопрос

Заполняю в рантайме ListView:

procedure TAddForm.ConnectClick(Sender: TObject);
var
LI: TListViewItem;
begin
with Query do
begin
Open;
while not Eof do
begin
LI := ListView1.Items.Add;
LI.Text := Query.FieldByName('Type').AsString;
LI.Detail := Query.FieldByName('Cargo').AsString + #13#10 + Query.FieldByName('Weight').AsString;
Next;
end;
end;
end;

Как видно, Detail разбивается и заполняется в две строки (оказалось, что так удобнее смотреть).

 

Но на обеих строках сухие цифры:

0.png

 

Поэтому хотелось бы в начало обеих строчек вставить свои иконки, чтобы в конечном итоге выглядело как-то так:

1.png

 

 

Есть идеи, как это можно сделать? А то товарищ kramler в другой теме писал, что не видит масла стоя перед открытым холодильником - так вот я сейчас уже в таком состоянии, что начинаю забывать, где мой собственный холодильник стоит, не говоря уже о масле в нём :D

И смешно, и грустно...

Изменено пользователем rakhmet
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

есть два варианта

1) использовать FontAwesome и перед текстом ставить подходящую иконку (не рекомендую использовать иконку и текст в одном объекте, будут баги на некоторых девайсах из-за кириллицы)

2) добавить объекты в режиме DynamicAppearance

Ссылка на комментарий
  • 0

Честно говоря, ни с тем ни с другим не сталкивался. Пошёл искать. Есть какие-нибудь примеры?

 

Увидел ссылку, спасибо.

Изменено пользователем rakhmet
Ссылка на комментарий
  • 0

Посмотрел я...

Попроще решений точно нет? Ради двух повторяющихся из строки в строку иконок не то что огород, а целую ферму городить придётся. Я не против работы головой и ручками, но не хочется микроскопом гвозди забивать или из пушки по блохам стрелять :unsure:

 

Иконки в png, стандартные 16х16, каждая по паре сотен байт. Неужели их отрисовка НАСТОЛЬКО отжирает ресурсы, что появляются баги?

Ссылка на комментарий
  • 0

в данном случае Dynamic очевидно решает вашу проблему. не решает только подстройку под ширину девайса

конструирование же в коде каждого из элементов - 5-10 строк кода. итого 25-50 строк. не так уж и много, имхо

Ссылка на комментарий
  • 0

С редактором разбираюсь прямо сейчас. Но насчёт подстройки под ширину не совсем правильно понимаю - возможны проблемы из-за фиксированного размера Item, или я путаю?

Ссылка на комментарий
  • 0

у элементов здесь - фиксированный размер

и это имхо проблема, когда мы говорим о поддержке разных разрешений экрана

если строки короткие, и влезают даже на маленький экран, проблем нет

Ссылка на комментарий
  • 0
11 часов назад, ZuBy сказал:

есть два варианта

1) использовать FontAwesome и перед текстом ставить подходящую иконку (не рекомендую использовать иконку и текст в одном объекте, будут баги на некоторых девайсах из-за кириллицы)

2) добавить объекты в режиме DynamicAppearance

Вопрос насчёт решения с кастомным шрифтом:

1. Скачал обновлённый архив 4.7

2. Вытащил из архива файл fontawesome-webfont.ttf и переименовал его в FontAwesome.ttf

3. Положил переименованный файл в \CustomFont\font\ с заменой старого файла (от 4.5, насколько я понимаю)

4. Добавил для тестирования в FontAwesome.pas новую запись (в алфавитном порядке, по аналогии с соседними записями и в соответствии с новой иконкой):

pas.png

 

5. Исключительно в целях проверки изменил старую ссылку на новую:

test.png

 

6. Однако при запуске старые иконки прорисовываются, а новая - нет:

Screenshot_1483125485.png

 

 

Что я забыл сделать?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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