Предположим, у меня есть набор объектов TField
и вы хотите изменить их видимость в некоторых DBGrid динамически. Я также хочу разрешить пользователям изменять порядок столбцов в этом DBGrid и иметь некоторые фиксированные столбцы.Получить объект столбца для поля DataSet
Я знаю proper way to hide/show columns on DBGrid, но есть большой, большой недостаток дизайна в VCL: имея объект Column, можно поехать в его полевой объект, но не можете найти путь назад.
Все, что я хочу, это просто вид столбца свойство внутри объекта Field, так что я могу ввести что-то вроде этого:
Field.Column.Visible := False;
и скрыть любой столбец внутри DBGrid с присвоенной Columns собственности.
Я знаю, что могу просто создать HashSet или Collection с колонками и быстро найти соответствующие столбцы, но существует ли более прямой способ сделать это?
Там нет абсолютно никакого способа, почему TField должен знать о визуальном представлении, как TDBGrid или TColumn. Что бы вы ожидали от такого свойства, когда набор данных и это поле видны более чем в одной сетке одновременно? –
Хм ... Я бы спрятал или покажу эту колонку во всех подключенных сетках. – Danatela
Свойство 'Field.Visible' определяет, появится ли поле в сетке данных. Я не понимаю, почему его нельзя использовать. –