powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Список в цикл
17 сообщений из 17, страница 1 из 1
Список в цикл
    #39908726
_Тимур_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
как записать в виде цикла без явного перечисления?

Код: pascal
1.
2.
3.
4.
5.
6.
cxGrid1DBTableView1A1.Visible:=true;
cxGrid1DBTableView1A2.Visible:=true;
cxGrid1DBTableView1A3.Visible:=true;
cxGrid1DBTableView1A4.Visible:=true;
cxGrid1DBTableView1A5.Visible:=true;
...


Количество полей больше 100
...
Рейтинг: 0 / 0
Список в цикл
    #39908731
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_,

Код: pascal
1.
2.
3.
for i:=1 to 99 do begin
  TcxGrid1DBTableView(FindComponent('cxGrid1DBTableView1A'+i.ToString)).Visible:=true;
end;
...
Рейтинг: 0 / 0
Список в цикл
    #39908742
_Тимур_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гениально и просто, спасибо
...
Рейтинг: 0 / 0
Список в цикл
    #39908745
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_
Гениально и просто, спасибо

Но стоит переименовать колонку или например удалить одну из......
...
Рейтинг: 0 / 0
Список в цикл
    #39908750
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Тимур_,

возможно так будет удобнее:

Код: pascal
1.
2.
3.
 for i := 0 to ComponentCount - 1 do
  if (Components[i] is TcxGrid1DBTableView) and (тут какое-то дополнительное условие если нужно) then
   TcxGrid1DBTableView(Components[i]).Visible := True
...
Рейтинг: 0 / 0
Список в цикл
    #39908751
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
for i:=0 to ComponentsCount - 1 do begin
  if Components[i] is TcxGrid1DBTableView then
    ( Components[i] as TcxGrid1DBTableView).Visible:=true;
end;



Так больше похоже на рабочий кот.
...
Рейтинг: 0 / 0
Список в цикл
    #39908752
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колонки могут быть в другом модуле (форме), и в ComponentCount их нет
...
Рейтинг: 0 / 0
Список в цикл
    #39908753
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Да ты издеваешься, что, раньше на минуту написать нельзя было?))
...
Рейтинг: 0 / 0
Список в цикл
    #39908767
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,



DimaBr,

а нефиг в другой модуль лезть :) пишите там, где нужно.
...
Рейтинг: 0 / 0
Список в цикл
    #39908772
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
а нефиг в другой модуль лезть :) пишите там, где нужно.

Вьюшка может храниться в TDataModule, а отображаться на форме. И это нормально !
Зачем перебирать все компоненты, если у вьюшки есть список колонок ?
...
Рейтинг: 0 / 0
Список в цикл
    #39908783
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

ну напиши код для перечисления всех колонок и кинь сюда :)

rgreat вот вообще предложил FindComponent, посмотри как он работает :) перебор всех компонентов там отдыхает.
...
Рейтинг: 0 / 0
Список в цикл
    #39908787
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
var i: integer;
begin
  for i := 0 to cxGrid1DBTableView1.ColumnCount -1 do
    cxGrid1DBTableView1.Columns[i].Visible := true;
end;
...
Рейтинг: 0 / 0
Список в цикл
    #39908809
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
rgreat вот вообще предложил FindComponent, посмотри как он работает :) перебор всех компонентов там отдыхает.
Там "оптимизация". ;)
...
Рейтинг: 0 / 0
Список в цикл
    #39908820
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Код: pascal
1.
2.
3.
4.
for i:=0 to ComponentsCount - 1 do begin
  if Components[i] is TcxGrid1DBTableView then
    ( Components[i] as TcxGrid1DBTableView).Visible:=true;
end;



Так больше похоже на рабочий кот.

Ваш код делает видимыми все Вьюшки, а человек хочет поднять видимость колонок
...
Рейтинг: 0 / 0
Список в цикл
    #39908987
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чрезжопно как-то. Если меняется видимость ВСЕХ столбцов - то логичнее вообще их не дергать, а играться как раз на уровне гридвью. А если уж приспичило дергать именно айтемы гридвью - то надо по крайней мере обернуть в Begin/EndUpdate
...
Рейтинг: 0 / 0
Список в цикл
    #39909108
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

+1
...
Рейтинг: 0 / 0
Список в цикл
    #39909135
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon

rgreat вот вообще предложил FindComponent, посмотри как он работает :) перебор всех компонентов там отдыхает.
Зато при втором и далее вызовах работает быстро :))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Список в цикл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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