С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 23
1
Delphi 6-7

DBGridEh сохранение состояния сетки

31.07.2024, 00:05. Показов 480. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Помогите с задачей: Есть DBGridEh, строки которой могут быть отсортированы/отфильтрованы пользователем. Нужно одно из состояний сетки запомнить под неким именем. Например: "Все в 2024 году", "Все выбывшие" и тд...
Есть метод SaveGridLayoutIni, сохраняющий состояние сетки в Ini. А мне нужно состояние сетки сохранить, вместе с неким именем. Для того, чтобы впоследствии, восстанавливать сохраненные состояния с помощью выпадающего списка.
Куда копать, подскажите?

Добавлено через 43 минуты
Есть подозрения, что сетка делает некие действия с DataSet'ом: фильтрация, сортировка. А вот как программным способом сделать то, что пользователь натыкал на сетке?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.07.2024, 00:05
Ответы с готовыми решениями:

Сохранение рабочего состояния проекта
Помогите. Уже задолбало каждый раз при открытии проекта повторно расстяавлять брякпойты, забивать...

Автоматическое сохранение в DBGridEh - Delphi
DataSet автоматически вызывает метод Post при переходе на новую запись если в старой записи были...

Свойство DBGridEh.Columns[i].OptimizeWidth долго грузит DBGridEh
Здравствуйте! В компоненте DBGridEh есть такая опция установки авторазмера под содержимое столбцов...

Сохранение состояния
Добрый день! Подскажите, как можно выполнить такую задачу в лотусе: есть вид, который...

5
пофигист широкого профиля
4754 / 3191 / 860
Регистрация: 15.07.2013
Сообщений: 18,487
31.07.2024, 02:23 2
Цитата Сообщение от NGPOL Посмотреть сообщение
Есть метод SaveGridLayoutIni, сохраняющий состояние сетки в Ini. А мне нужно состояние сетки сохранить, вместе с неким именем.
Приведите декларацию этого метода. Если в нем можно задать имя секции ини файла, в которую делается запись, то нет проблем. Если нельзя, то облом.
P.S. У меня не установлена DBGridEh как и у большинства здесь присутствующих.

Добавлено через 4 минуты
Цитата Сообщение от NGPOL Посмотреть сообщение
Есть подозрения, что сетка делает некие действия с DataSet'ом: фильтрация, сортировка. А вот как программным способом сделать то, что пользователь натыкал на сетке?
Очень правильные подозрения. Именно так всё и происходит. Как сделать программно? Читайте книжки, мануалы и т.д. и т.п. И задавайте конкретные вопросы, если что-то не получается.
0
Модератор
9646 / 6253 / 2426
Регистрация: 21.01.2014
Сообщений: 26,674
Записей в блоге: 3
31.07.2024, 05:05 3
BDGridEx не является "родным" компонентом, поэтому далеко не у всех он имеется и ответа Вы можете ждать долго. Но вот у производителя этого компонента есть свой форум (даю подсказку: первая ссылка в гугле по запросу ehlib форум). Почему бы не спросить непосредственно там?
1
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 23
31.07.2024, 12:24  [ТС] 4
Цитата Сообщение от northener Посмотреть сообщение
Приведите декларацию этого метода
SaveGridLayoutIni(const IniFileName: String; const Section: String; DeleteSection: Boolean);
Есть декларация секции. Таким образом можно из названий секций создать список? Тоже мысль.
восстанавливать состояние можно методом:
Код
RestoreGridLayoutIni(const IniFileName: String; const Section: String; RestoreParams: TDBGridEhRestoreParams);

TDBGridEhRestoreParam = (grpColIndexEh, grpColWidthsEh, grpSortMarkerEh, grpColVisibleEh,
    grpRowHeightEh, grpDropDownRowsEh, grpDropDownWidthEh, grpRowPanelColPlacementEh);
  TDBGridEhRestoreParams = set of TDBGridEhRestoreParam;
Остаётся вопрос: как же ПРОГРАММНЫМ способом восстановить состояние DataSet'а, в которое его привёл пользователь в предыдущем сеансе работы...
0
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
31.07.2024, 18:27 5
Лучший ответ Сообщение было отмечено northener как решение

Решение

Цитата Сообщение от NGPOL Посмотреть сообщение
Остаётся вопрос: как же ПРОГРАММНЫМ способом восстановить состояние DataSet'а, в которое его привёл пользователь в предыдущем сеансе работы...
Возможно надо перечислить все значения из TDBGridEhRestoreParam в RestoreParams, а вообще надо бы посмотреть что собственно помещается в секцию Ini-файла при использовании SaveGridLayoutIni
1
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 23
03.08.2024, 19:14  [ТС] 6
Немного не то. Там сохраняется и восстанавливается состояние именно сетки: порядок столбцов, ширина, наличие и направление маркёров сортировки. А состояние DataSet'а - нет. Это - сами, ручками... Видимо - так. В общем, я плюнул, написал примитивненький генератор фильтров(он будет генерировать тот код SQL, который после WHERE), буду сохранять в таблице этот код, описание его человечьими словами и название фильтра. В нужный момент применять... А сетка EhLib... Ну у нее остались хорошие функции: RowPanel, выравнивание, заголовки... Будем работать!
Спасибо всем!
0
03.08.2024, 19:14
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2024, 19:14
Помогаю со студенческими работами здесь

Сохранение состояния
Вот скажем есть блок:#div13, и я обрабатываю его hide(1500);(т.е. скрываю).И вот:Скажем...

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

Сохранение состояния страницы
Всем привет, я не так давно изучаю Django и столкнулся со следующей проблемой. На странице товаров...

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

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

Сохранение состояния ViewPager
Есть адаптер: public class QuestionFragmentPagerAdapter extends FragmentPagerAdapter { ...

Сохранение состояния списка
Привет. Прошу помощи в организации следующей вещи: Имеется приложение, построенное в виде списка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru