Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 193

DBGrid.DataSource.DataSet.DisableControl­s; ИЛИ DBGrid.Columns.BeginUpdate;

13.12.2023, 15:37. Показов 2629. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
  DBGrid.DataSource.DataSet.DisableControls;
  DBGrid.Columns.BeginUpdate;
В чем разница?
Перебираю данные датасета скрываю колонки DBGrid первоначально юзал DBGrid.Columns.BeginUpdate; - и вреде бы видел положительную разницу от этого использования.
Сейчас наткнулся на DBGrid.DataSource.DataSet.DisableControl s;

Возможно это одно и тоже только путь к этому действию (отключению перерисовке) тут длиннее "DBGrid.DataSource.DataSet.DisableContro ls" ?

Добавлено через 35 минут
В коде есть показ предварительно скрытых колонок ADBGrid.Columns[K].Visible := True;

DBGrid.DataSource.DataSet.DisableControl s; - по всей видимости лучше так как мелькает DBGrid меньше, точнее нет я не вижу его.
А при DBGrid.Columns.BeginUpdate; - я вижу что колонки дергаются.
Все же это не одно и то же.

Добавлено через 10 минут
Спросил у чата
Вопрос очень абстрактный и зависит от контекста использования. Выбор между ADBGrid.DataSource.DataSet.DisableContro ls и ADBGrid.Columns.EndUpdate зависит от того, что вы хотите сделать.

ADBGrid.DataSource.DataSet.DisableContro ls используется для временного отключения обновления данных в связанном TDataSet. Это может быть полезно, например, при множественных изменениях данных в TDataSet, когда вы хотите предотвратить множество лишних перерисовок и обновлений интерфейса приложения. Когда вы закончили внесение изменений, вы можете включить обновление контролов с помощью ADBGrid.DataSource.DataSet.EnableControl s.

ADBGrid.Columns.EndUpdate используется для временного отключения обновления колонок в TDBGrid. Это может быть полезно, когда вы делаете множество изменений в колонках, но не хотите, чтобы каждое изменение вызывало обновление TDBGrid. Когда вы закончили внесение изменений, вы можете включить обновление колонок с помощью ADBGrid.Columns.BeginUpdate.

Если вы хотите временно отключить обновление данных в TDataSet, то лучше использовать ADBGrid.DataSource.DataSet.DisableContro ls. Если вы хотите временно отключить обновление колонок в TDBGrid, то лучше использовать ADBGrid.Columns.EndUpdate. Во многих случаях, вам может понадобиться использовать оба этих метода вместе.
Странно. Я данные не меняю я по ним перемещаюсь и читаю. Поэтому казалось бы отключение перерисовки BeginUpdate долно было быть достаточно. Но нет. Лучший эффект от использования ADBGrid.DataSource.DataSet.DisableContro ls.

А еще чат ГПТ считает несколько иначе назначение функций BeginUpdate.
Когда вы закончили внесение изменений, вы можете включить обновление колонок с помощью ADBGrid.Columns.BeginUpdate
Выбор между ADBGrid.DataSource.DataSet.DisableContro ls и ADBGrid.Columns.EndUpdate
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2023, 15:37
Ответы с готовыми решениями:

Установка DBGrid columns при выводе через запрос SQLquery (обычный вывод в editing DBGrid Columns все настраивается)
procedure TForm1.Button33Click(Sender: TObject); //Кнопка Все вывести begin sqlquery2.Active:=FALSE; ...

Как определить, что к Dbgrid не подключен DataSet или он пуст?
Здравствуйте! Подскажите, пожалуйста, каким образом можно реализовать следующее: У меня есть дбгрид, при клике по нему с выделенной...

Автозаполнение Columns в DBGrid
Всем доброго времени суток. Подскажите пожалуйста как осуществить автоматическое заполнение DBGrid2.columns.... Нужно сделать так, чтобы...

2
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,670
Записей в блоге: 21
13.12.2023, 17:29
DataSet.DisableControls напрямик к гриду отношения не имеет. это свойство датасета
в этом состоянии при перемещении по DataSet вообще никакие подключенные к нему DB-контролы, в т.ч. и DBGrid, не перерисовываются

DBGrid.Columns.BeginUpdate относится к колонкам грида
если с ними что-то делать - удалять добавлять изменять, то это тоже не будет отрисовываться до EndUpdate

поэтому в целом все верно написано, возможно, неоднозначно, но верно.
0
 Аватар для Beltar
828 / 443 / 38
Регистрация: 05.05.2022
Сообщений: 3,055
13.12.2023, 18:41
Работаете с датасетом, к которому может быть разное подсоединено, а не с гридом, поэтому DisableControl. Часто в совмещении с GetBookmark, проходу по гриду и GoToBookmark.

А BeginUpdate грида - это скорее для его внутренних механизмов, когда он, например, данными заполняется.

Никакой неоднозначности здесь быть не может.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2023, 18:41
Помогаю со студенческими работами здесь

Фиксирование нужных столбцов DBGrid или скрыть относительно позиции гор. скролла DBGrid'a необходимые столбцы
Добрый день! Можно ли в компоненте DBGrid сделать фиксированными определенные столбцы? или же как то вычислять позицию горизонтального...

Как объеденить 3 клонки из DataSource в одну DBGrid
В DBGrid вставлен DataSource. Можно ли из 3 клонок DataSource сделать одну в DBGrid? Если да то как?

Изменение данных в ячейке DBGrid с использованием DataSource
Добрый день всем:) Ребятки,такая проблема: мне надо изменить данные в ячейке DBGrida зная название столбца и номер строки записи...Номер...

Как сделать сортировку, используя DbGrid, Table и DataSource?
Здравствуйте ! Помогите пожалуйста сделать сортировку. Я использую следующие компоненты:dbgrid,table и DataSource. Пишу в...

TTable DataSource DBGrid как обратиться к конкретной ячейке
Оч тупой вопрос :) есть таблица созданая по средствам TTable DataSource DBGrid. Вопрос как обратиться к конкретной ячейке к примеру


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru