Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 09:58   #1
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
Смех Перебор ячеек

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

Код:
bm.Canvas.TextOut(5,xc,'Ô.È.Î:'+mainform.DataSource1.DataSet.Fields.Fields[1].Text);
Естественно, при работе с данным кодом, получаю n-ое количество строк с одним и тем-же содержимым. Если fields[1], заменить на fields[i], то будут перебираться столбцы. А мне нужно из каждой строки, получать значения, например второго столбца.
prizrak1390 вне форума Ответить с цитированием
Старый 23.03.2013, 10:03   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

DBGrid1.Columns[1].Field.Text
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.03.2013, 10:07   #3
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию

Аватар, это понятно, спасибо! Но у меня например 100 записей. Есть поля:Фио, возраст, почта.
Мне нужно узнать фио из всех 100 записей. А ваш код позволяет работать только с одним полем.
Иными словами мне нужен аналог:
stringgrid.cells[1,11];

Последний раз редактировалось prizrak1390; 23.03.2013 в 10:18.
prizrak1390 вне форума Ответить с цитированием
Старый 23.03.2013, 10:21   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  DBGrid1.DataSource.DataSet.First;
  while not DBGrid1.DataSource.DataSet.Eof do begin
    for i:=0 to DBGrid1.Columns.Count-1 do begin
    // работать с DBGrid1.Columns[i].Field.Text
    end;
    DBGrid1.DataSource.DataSet.Next;
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.03.2013 в 10:23.
Аватар вне форума Ответить с цитированием
Старый 23.03.2013, 10:39   #5
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию

Аватар, окей, спасибо. Код перебирает столбцы, с этим у меня не было проблем. Но а как мне быть со строками? Вот прям аналог:
stringgrid.cells[i,ii], есть? чтобы я мог обратиться к конкретной строке, к конкретному столбцу?
prizrak1390 вне форума Ответить с цитированием
Старый 23.03.2013, 10:56   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа перебора вариантов (изменить перебор цифровой на перебор буквенный) BArt2000 Паскаль, Turbo Pascal, PascalABC.NET 5 02.03.2015 12:56
Как реализовать перебор ячеек в диапазоне? a1bert Microsoft Office Excel 2 11.01.2012 22:14
Перебор ячеек столбца и формирование нового листа из уникальных записей Ad1r Microsoft Office Excel 3 06.05.2010 09:38
Таблицы в WORD. Перебор ячеек или поиск? sergeos Microsoft Office Word 7 09.06.2009 17:57