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

Копирование Grid на другую форму


POV

Вопрос

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

Копирование объектов - тема сама по себе довольно занимательная в каждом языке, но как скопировать хотя бы ячейки? Настройки уж бог бы с ними, заранее грид настроил.

Руками поячеечно, конечно, сделал, но может какой Assign поможет? Я не нашел как автоматически перенести текст во второй грид. Он ж и  по-быстрее будет, оптимизированнее.

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

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

  • 0

по-хорошему, это вообще неправильно от слова совсем

нужно иметь модель данных и процедуру отрисовки этой модели в грид

это не так уж и сложно, а проблем с выводом чего угодно куда попало нет и не может быть

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

 

21 минуту назад, krapotkin сказал:

нужно иметь модель данных и процедуру отрисовки этой модели в грид

"В общем и целом" это верно. Но тут всё крайне просто - лишь отображалка лога. Нет смысла тратить силы на "правильное"

Ссылка на комментарий
  • 0
38 минут назад, POV сказал:

лишь отображалка лога.

Так сделайте метод, который будет принимать в качестве параметра грид и "запихивать" туда содержимое лога. И после этого хоть 10 гридов заводите.

Ссылка на комментарий
  • 0
В 30.07.2016 в 13:52, kami сказал:

Так сделайте метод, который будет принимать в качестве параметра грид и "запихивать" туда содержимое лога. И после этого хоть 10 гридов заводите.

Так и сделал сразу. Но захотел чтобы за меня было что-то сделано )))

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

Можно попробовать через TMemoryStream. В FMX я не пробовал грид копировать (да и в VCL с большими данными тоже). Но вообще с компонентами попроще такой трюк работает. Например я частенько использую его для сохранения настроек в базе данных (в BLOB).

Алгоритм примерно такой:

в первой форме делаем

var MS: TMemoryStream;

MS.WriteComponent(Grid);

Потом передаем этот stream во вторую форму, а там делаем

MS.Position := 0;

MS.ReadComponent(Grid).

При этом гриды в обоих формах должны существовать. Просто все свойства и данные из первой, скопируются во вторую. 

Но вообще, как уже заметили, 1000 строк это уже как то много. Тут либо надо кеширование придумать, что бы одновременно в таблице было не больше строк чем помещается на экран, а остальные подгружались по мере прокрутки. Либо, что намного проще, использовать базу данных. 

 

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

Это уже много строчек и нет оптимизации на уровне реализации компонента.

Дав и интересно же какого рожна копирование хотя бы части данных по Assign не работает от слова совсем.

 

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

Изменено пользователем POV
Ссылка на комментарий
  • 0
12 часов назад, POV сказал:

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

Думаю так не получится. Как правило "что бы оно само работало" это типовые, универсальные решения, которые в целом работают, но в силу универсальности работают не очень хорошо. Именно потому чаще всего для конкретной задачи приходится брать "напильник" и затачивать под свои нужды.

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

Жаль если так.. современные фраемворки приучили к мысли "все придумано за нас". Как только возникает у меня вопрос типа заданного, я бью себя по рукам чтобы самом тривиальщину не писать и лезу в инет.. Почти всегда оказывается что многое уже встроено и можно сосредоточиться на оригинальном наполнении проекта... заодно исключаются косяки при смене версии и т.п.

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

FMX еще довольно молодой фремворк. Тут порой не хватает самых элементарных вещей. Как вариант вы можете создать на Github нужную вам либу, наверняка это может еще кому то пригодится. Совместными усилиями можно создать отличную вещь. Ну а что бы не быть зависимым от версии - пишите абстрактный код. Не надо привязываться к конкретному компоненту. 

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

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

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

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

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

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

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...