• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Виртуальные таблицы

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Сообщения
1,162
Симпатии
222
Баллы
155
VK
Хочу вас познакомить с моим способом вывода списков, таблиц и редактирования табличных данных.

Предположим, мы используем какую-то структуру для хранения списка, например массив, или что лучше generic список из System.Generic.Collections.

Например так,



TList – это generic класс для работы со списком состоящим из чего угодно. Это универсальный класс, который может работать с абсолютно любыми типами данных. Но можно и обычный массив использовать и работать с ним по старинке.

В общем, у нас есть какой-то список, мы его заполняем и он хранит там наши данные.

Теперь нам нужно его выводить юзеру, чтобы он его просматривал и/или редактировал.

Что мы для этого делаем? Мы копируем нужные поля в таблицу TListView или TListBox и надеемся на полную синхронность.

Но я делаю следующее:

  1. Меняю класс TList, на свой подправленный класс TTableData. Основное что он делает, это позволяет вызывать метод, если изменится кол-во элементов.
  2. Далее, вступает мой компонент TTableEx – таблица, которая умеет выводить данные напрямую из любого списка на экран и позволяет редактировать любые данные, также напрямую.
Так выгладит инициализация списка TTableData с таблицей

FProductTypes := TProductTypes.Create(TableExProductTypes);

И собственно вот всё что нужно сделать, чтобы данные отображались в таблице: FCol – столбец (в данном случае, 0 выступает CheckBox’ом, а 1 – Название категории продукта), FRow – строка которая сейчас выводится.



TTableData так же накладывает свойство Check на элементы, чтобы их отобразить в таблице достаточно написать:



Первый метод – это клик по строке, мы меняем Check на Uncheck и наоборот.

Второй метод – рисуем изображение нашего чекбокса.



Итоговый результат

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.




Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу