powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
16 сообщений из 16, страница 1 из 1
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675464
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, вот так не работает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
for i:= 0 to DBCtrlGrid1.ComponentCount - 1 do
begin
  if (DBCtrlGrid1.Components[i] is TDBCheckBox) then
  begin
    inc(j);
    if (DBCtrlGrid1.Components[i] as TDBCheckBox).Checked then
      inc(k);
  end;  
end;


Проверить в датасете нет возможности, нужно именно в компоненте
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675498
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так ?

DBCtrlGrid1.Components[i].ClassType = TDBCheckBox

Как вариант - перебрать все компоненты на форме с проверкой Parent = DBCtrlGrid1.

А что DBCtrlGrid еще кто-то юзает ? :)
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675517
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo,
Код: pascal
1.
DBCtrlGrid1.Components[i].ClassType = TDBCheckBox


не работает.
Кстати, DBCtrlGrid1.ComponentCount показывает число компонентов на гриде, которые были установлены в дизайн-тайме, если только смотреть по количеству панелей DBCtrlGrid1.PanelCount..., но толку от этого.
Перебирал компоненты на форме - тоже безрезультатно:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    j:= 0;
    k:= 0;
    for i:= 0 to ComponentCount - 1 do
    begin
      if (Components[i] is TDBCheckBox) and ((Components[i] as TDBCheckBox).Owner = DBCtrlGrid1) then
      begin
        inc(j);
        if (DBCtrlGrid1.Components[i] as TDBCheckBox).Checked then
          inc(k);
      end;
    end;
    ShowMessage('Проверено ' + IntToStr(i) + ' компонентов,' + #13#10 +
                'Чекбоксов ' + IntToStr(j) + #13#10 +
                'Выделено  ' + IntToStr(k));
  end;
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675535
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// Перебирал компоненты на форме - тоже безрезультатно:

Возможно перебор шел из другого модуля ?
Надо так Нужнаяформа.ComponentCount

И не Овнер а Парент

И что значит "не работает" ? Ничего не находит ?
Сначала надо найти хоть что-то. Потом фильтруйте условиями.
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675542
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argoВозможно перебор шел из другого модуля?
Надо так Нужнаяформа.ComponentCount

Добавлял и убирал компоненты в дизантайме - все нормально считает
L_argoИ не Овнер а Парент

Спасибо, поправил)
L_argoНичего не находит ?

Дело в том, что количество компонентов не меняется в рантайме. Я добавляю кнопкой несколько полей в DBCtrlGrid1, нажимаю на кнопку проверить - общее количество остается тем же.
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675636
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому как идиотское решение. Задачи с данными надо решать на уровне данных, а не их визуальном представлении. Допустим в базе сто записей, а на экран влезает 10. Как чекушки считать будешь?
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675655
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger,
приведешь пример именно с этим компонентом? Мне нужно чтобы при нажатии на чекбокс в DBCtrlGrid (неважно, снятие чекбокса или установка) проходил поиск по датасету с подсчетом значений, где стоит 1 (True)?
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675686
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afordМне нужно чтобы при нажатии на чекбокс в DBCtrlGrid (неважно, снятие чекбокса или установка) проходил поиск по датасету с подсчетом значений, где стоит 1 (True)?у меня для таких целей изврат в виде агрегатного поля в cds ссылающегося на поле с отметкой. и кол-во помеченных получается автоматом, без ручного прохода по датасету. хотя проще всего пожалуй вовне счетчик менять при редактировании чекбоксов нежели потом их пытаться подсчитать
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675706
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел решение. оказалось проще не куда.. по крайней мере для моей задачи подходит.
Я просто считаю клики в отдельной переменной (чекбоксед true - "+1", false - "-1").
Закрываю тему, всем спасибо :)
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675736
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afordНашел решение. оказалось проще не кудаоб чем и толковал
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675750
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afordНашел решение. оказалось проще не куда.. по крайней мере для моей задачи подходит. Я просто считаю клики в отдельной переменнойИ как ты получаешь количество уже установленных чекушек после открытия датасета?
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675767
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

Похоже не только мне кажется, что этот топик - очередная попытка проглотить бильярдный шар?-)
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675775
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он тоже виноват.
именно ихняя контора ниспровергла постулат о том , что "в гриде нет данных!"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675801
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийон тоже виноват.
именно ихняя контора ниспровергла постулат о том , что "в гриде нет данных!"Подтяни знания :) Данные в датаконтроллере, причем в трёх его режимах из пяти, это правило соблюдается ;)
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39675833
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.07.2018 17:47, white_nigger пишет:
> причем в трёх его режимах из пяти, это правило соблюдается ;)

манал я вашу рыбу заворачивать - тут играем, тут не играем...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
    #39676657
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerИ как ты получаешь количество уже установленных чекушек после открытия датасета?
Перебираю датасет :D
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перебрать чекбоксы у DBCtrlGrid, и вывести их количество + отмеченные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]