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

Посоветуйте, сделать TGrid из TListView. Как добавить кнопку-колонку в ListView


ENERGY

Вопрос

Нужно сделать компонент TGrid. Стандартный Grid не подходит, потому что нужно чтобы строки (raws) были разной высоты, а также чтобы была возможность соединять (сливать) ячейки.

Я решил сделать его на основе TListView и его DynamicAppearance. Использовать кастомные объекты, отнаследованные от TListItemObject + возможность рисовать на Canvas каждого ListItem, например прямоугольники.

Т.к. колонки он не поддерживает, есть идея использовать THeader и подстраивать их под размер своих колонок. Также важно быстродействие компонента.

Как вы думаете есть ли в этом смысл?

Возможно кто-то уже занимался подобным, и может что-нибудь посоветовать.

Спасибо.

 

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

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

  • 0

колонок не существует

делайте нужное количество текстовых элементов

я уже много раз приводил ссылку на видео

и есть тут пример создания компонентов на разновысоких итемах в ListView

и даже дополнительный компонент от @Равиль Зарипов (ZuBy)

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

Пока без редактирования. 

@krapotkin Спасибо, я это все уже смотрел, а компонент Равиля использую в своих программах. Тут больше вопрос стоит ли это делать на основе TLIstView ?

 

Пока с отрисовкой и позиционированием объектов на Item (разбивку на колонки) все понятно, я уже это делал когда-то.

Вопрос как нужно делать колонки, точнее кнопки колонок. Как сделать так чтобы они не скролились вместе с содержимым ListView? 

1. добавить SpeedButton в сам ListView и каким то образом подвинуть вниз весь контент на высоту кнопки.

2. Или есть ли возможность нарисовать эти кнопки над компонентом из класса компонента? Я вот не знаю, но догадываюсь что есть. Может @Brovin Yaroslav  сможет подсказать? Мне кажется второй вариант можно легко реализовать, вот только не знаю как пока.

Спасибо.

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

Возможнос, я не в теме, но у меня вопрос. А TGrid чем не устраивает? Хотите свой вариант расположения контролов в ячейке сделать?

Ссылка на комментарий
  • 0
2 часа назад, Brovin Yaroslav сказал:

Возможнос, я не в теме, но у меня вопрос. А TGrid чем не устраивает? Хотите свой вариант расположения контролов в ячейке сделать?

Я написал в первом посте основную причину. И вообще это желание заказчика.

Ярослав, подскажите пожалуйста что можно придумать с кнопками-колонками, можно ли их отрисовать над компонентом (сверху), и управлять ими из класса компонента? Хотя бы примерно намекните как это лучше сделать? У меня просто опыта в разработке визуальных FMX никакого, я делал только визуальные компоненты VCL и KOL MCK.

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

@krapotkin

Примерно так:grid.thumb.png.93de8b20cf45d1be7141db602827495c.png

Вопрос в том, возможно ли из класса компонента, управлять кнопками? Напр. позиционировать их над ListView, менять их ширину итп ?

Конечно лучше их будет перекинуть внутрь ListView, но я не знаю как сместить все ListItems вниз, плюс они же будут скролиться что нежелательно.  Вот и спрашиваю как лучше сделать.

 

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

Сделайте обычными SpeedButton над ListView.

И управляйте по событиям как требуется...

Дешево, удобно и практично будет! :)

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

в МодернЛВ есть свойства для отступов. Можно задать верхний отступ для итемов, чтобы в эту область всунуть те же SpeedButton

592fd979668c5_(9).thumb.png.f91f24c847e907b89d83c76534598e1f.png

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

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

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

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

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

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

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

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

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

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