Size: a a a

2020 November 23

TA

Tony An in Delphi & Lazarus
А если без них?
источник

SB

Sergey Bodrov in Delphi & Lazarus
А если коллекция (список, массив) из записей (record, TObject), то ее можно легко спроецировать на TListView в режиме OwnerData. Достаточно назначить общее количество TListView.Item.Count и в событии OnData вручную заполнять каждый отображаемый элемент списка.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Или можно использовать виртуальный датасет с тем же принципом работы.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
повторю. важно, что бы бизнес-код был максимально отвязан от гуя. какими это способами достигается - значения особо не имеет. MVC, MVP, MVVM и т д - это общие подходы и идеи. частная реализация идей может быть разной
источник

TA

Tony An in Delphi & Lazarus
Sergey Bodrov
А если коллекция (список, массив) из записей (record, TObject), то ее можно легко спроецировать на TListView в режиме OwnerData. Достаточно назначить общее количество TListView.Item.Count и в событии OnData вручную заполнять каждый отображаемый элемент списка.
Хочу уйти от датасетов, попробую такой вариант
источник

DB

Dmitry Belkevich in Delphi & Lazarus
вот как в секции uses бизнес-модулей гуевых ссылок нет и всё при этом работает как нужно - считайте, что все эти mv* выдержаны до какой-то степени
источник

DB

Dmitry Belkevich in Delphi & Lazarus
из статьи:

"В сети давно и много трубят про MVC, MVP, MVVM. Будто это такие чудодейственные методики, следуя которым можно запрограммировать пользовательский интерфейс «правильно» и не иметь того гемора, который описан выше. На самом деле это лишь подходы, которые действительно помогают, но которые можно реализовать абсолютно по-разному в разных языках программирования и даже в одном языке. Т.е. это скорее советы, с какой стороны лучше подходить к программированию пользовательского интерфейса."
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Dmitry Belkevich
вот как в секции uses бизнес-модулей гуевых ссылок нет и всё при этом работает как нужно - считайте, что все эти mv* выдержаны до какой-то степени
Спасибо, а если в общем и популярно ГУИ должен "дергать=стартовать" из таких бизенс-модулей методы с переданными параметрами и получать результаты в виде событий или данных.
К примеру в ГУИ контрол для ввода цифры, и контрол для вывода, а в бизнес модели не привязанныы ни к чему класс по расчету квадрата числа-один метод и одно свойство. Нажали кнопку, считали цифру, передали в класс через параметр, получили изменение свойства, а в ГУИ записали это свойство в контрол для вывода?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Сергей Пятыгин
Спасибо, а если в общем и популярно ГУИ должен "дергать=стартовать" из таких бизенс-модулей методы с переданными параметрами и получать результаты в виде событий или данных.
К примеру в ГУИ контрол для ввода цифры, и контрол для вывода, а в бизнес модели не привязанныы ни к чему класс по расчету квадрата числа-один метод и одно свойство. Нажали кнопку, считали цифру, передали в класс через параметр, получили изменение свойства, а в ГУИ записали это свойство в контрол для вывода?
Смысл в том, чтобы не дублировать данные внутри программы. И не дублировать алгоритмы обработки данных. Чтобы потом в них не путаться. А визуальные контролы могут дублироваться сколько угодно.
источник

TA

Tony An in Delphi & Lazarus
Видосика не хватает )
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Sergey Bodrov
Смысл в том, чтобы не дублировать данные внутри программы. И не дублировать алгоритмы обработки данных. Чтобы потом в них не путаться. А визуальные контролы могут дублироваться сколько угодно.
Завуалировано:)
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Сергей Пятыгин
Спасибо, а если в общем и популярно ГУИ должен "дергать=стартовать" из таких бизенс-модулей методы с переданными параметрами и получать результаты в виде событий или данных.
К примеру в ГУИ контрол для ввода цифры, и контрол для вывода, а в бизнес модели не привязанныы ни к чему класс по расчету квадрата числа-один метод и одно свойство. Нажали кнопку, считали цифру, передали в класс через параметр, получили изменение свойства, а в ГУИ записали это свойство в контрол для вывода?
начни делать. сразу разберешься ) накидать тестовый пример и посмотреть как что проходит. одно изменяемое свойство. можно несколько контролов на него (если такая задача стоит) или один
источник

DB

Dmitry Belkevich in Delphi & Lazarus
у меня, к слову, число экшнов на главной странице больше ста.
у себя делаю так: любое изменение важного для контролов состояния вызывает пересчет всех экшнов (SetActions) получилось просто, наглядно и ничего не тормозит
источник

DB

Dmitry Belkevich in Delphi & Lazarus
это не значит, что это - единственно верный путь. один из вариантов, выработался со временем как наиболее удобный в моем случае
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
Вполне достаточно отвязать GUI от внутренней логики. Это избавляет от сложностей при развитии, когда изменение структуры данных вызывает неожиданные поломки в формах.
+
источник

ДT

Дмитрий Texnix... in Delphi & Lazarus
подскажите как в unidvgrid покрасить нужную строку в красный?
источник

ДT

Дмитрий Texnix... in Delphi & Lazarus
смог только ячейку в GridGurnDrawColumnCell
источник

AS

Alexey Shumkin in Delphi & Lazarus
Tony An
Надо как-то подписываться на изменения. Тоже хочу почитать где-нибудь
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Дмитрий Texnix
смог только ячейку в GridGurnDrawColumnCell
чем строка, состоящая из ячеек отличается от просто строки? )
источник

ДT

Дмитрий Texnix... in Delphi & Lazarus
Attribs: TUniCellAttribs выдаётся только для конкретной ячейки, потому покрасить могу только ту, по которой я делаю расцветку
источник