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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 23:23   #1
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию Разберите код

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 XL, XArr: Variant;
 k: Integer;
 n: Integer;
begin
 {не забудьте включить ComObj в список используемых модулей}
 // Создаем массив элементов, полученных в результате запроса
 XArr:=VarArrayCreate([1,DBGrid1.FieldCount],varVariant);
 XL:=CreateOLEObject ('Excel.Application');     // Создание OLE объекта
 XL.WorkBooks.add;
 XL.visible:=true;

 n := 1;
 DBGrid1.FieldCount;
 while not DBGrid1.Eof  do
  begin
   k:=1;
   while k<=DBGrid1.FieldCount do
    begin
     XArr[k] := DBGrid1.Fields[k-1].Value;
     k := k+1;
    end;
   XL.Range['A'+IntToStr(n),
   CHR(64+DBGrid1.FieldCount)+IntToStr(n)].Value := XArr;
   Table1.Next;
   n:=n+1;
  end;
 XL.Range['A1',CHR(64+DBGrid1.FieldCount)+IntToStr(n)].select;
 // XL.cells.select;                     // Выбираем все
 XL.Selection.Font.Name:='Arial cur';
 XL.Selection.Font.Size:=10;
 XL.selection.Columns.AutoFit;
 XL.Range['A1','A1'].select;

end;
end;

end.

Разжуйте каждую строчку дословно... Плиз)

Последний раз редактировалось Stilet; 05.05.2011 в 05:53.
pusik вне форума
Старый 04.05.2011, 12:27   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject); //обработчик события на нажатие кнопки
var
XL, XArr: Variant; //две переменные инвариантного типа (т.е. тип во время работы программы может принимать любой какой угодно)
k: Integer;
n: Integer;
begin
{не забудьте включить ComObj в список используемых модулей}
// Создаем массив элементов, полученных в результате запроса
XArr:=VarArrayCreate([1,DBGrid1.FieldCount],varVariant);
XL:=CreateOLEObject ('Excel.Application'); // Создание OLE объекта
XL.WorkBooks.add; //создаем новую книгу при работе с экселем
XL.visible:=true; //включаем отображение excel

n := 1;
DBGrid1.FieldCount;
while not DBGrid1.Eof do //пока не достигли последней строки результатов
begin
k:=1;
while k<=DBGrid1.FieldCount do //пока не дошли до последнего поля
begin
XArr[k] := DBGrid1.Fields[k-1].Value; //в массив загоняем данные из определенного поля
k := k+1;
end;
XL.Range['A'+IntToStr(n),
CHR(64+DBGrid1.FieldCount)+IntToStr (n)].Value := XArr;
Table1.Next; //переходим к следующей записи (стироке)
n:=n+1;
end;
XL.Range['A1',CHR(64+DBGrid1.FieldCount)+Int ToStr(n)].select; //в экселе выделяем ячейки начиная от A1, заканчивая буквой, соответствующей количеству полей и цифрой, соответствующей 
XL.Selection.Font.Name:='Arial cur'; //устанавливаем для выделенных ячеек шрифт
XL.Selection.Font.Size:=10; //размер шрифта
XL.selection.Columns.AutoFit; //выставляем форматирование ячеек "Растягивать по ширине"
XL.Range['A1','A1'].select; //выделяем ячейку A1

end;
end;

end.
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума
Старый 05.05.2011, 05:07   #3
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию

Спасибо огромное))) осталс лишь один вопрос? почему делфи выдает ошибку на эту строчку:
while not DBGrid1.Eof do //пока не достигли последней строки результатов
pusik вне форума
Старый 05.05.2011, 05:27   #4
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию

А все разобрался))) Еще раз спасибо за объяснение)
pusik вне форума
Старый 17.05.2011, 11:52   #5
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию

Закройте тему)))) Ответ дан)
pusik вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доп.код,обратный код,прямой код вычисления Lukas077 Помощь студентам 0 20.03.2011 12:07
Код написал код, но ответ постоянно один и тот же SkuLLL Помощь студентам 4 14.12.2010 19:25
Разберите плис по пунктикам Mojevelnik Общие вопросы .NET 1 29.11.2010 06:12
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Разберите код программы и напишите что там не так!!! MjRed Фриланс 4 08.12.2008 09:27