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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 06:04   #1
Танюшаа
 
Регистрация: 02.04.2009
Сообщений: 7
По умолчанию Необходимы комментарии!!!

Здравствуйте! Пожалуйста, напишите комментарии (где помечено знаком вопроса)! Я новичок в программировании....

Код:
procedure TFOtzetXLS.Button3Click(Sender: TObject);
var
Layout: array[0..KL_NAMELENGTH] of char; ????????
begin
LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE); ???????
try
ExportDBGrid(True);
except
ShowMessage('Ошибка экспортёра');
end;
end;

procedure TFOtzetXLS.ExportDBGrid(toExcel: Boolean);
var bm: TBookmark;
col, row: Integer;
sline: string;
mem: TMemo;
ExcelApp: Variant;
begin
Screen.Cursor := crHourglass;
DBGrid1.DataSource.DataSet.DisableControls; ????????
bm := DBGrid1.DataSource.DataSet.GetBookmark; ????????
DBGrid1.DataSource.DataSet.First; ?????????
// создаём объект Excel
if toExcel then
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Add(xlWBatWorkSheet); ?????????
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Grid Data'; ???????
end;
// Сперва отправляем данные в memo
// работает быстрее, чем отправлять их напрямую в Excel
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := FOtzetXLS;
mem.Clear;
sline := '';

for col := 0 to DBGrid1.FieldCount - 1 do ????????????
sline := sline + DBGrid1.Fields[col].DisplayLabel + #9; ???????????
mem.Lines.Add(sline);
// получаем данные из memo
for row := 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 do ??????
begin
sline := '';
for col := 0 to DBGrid1.FieldCount - 1 do sline := sline + DBGrid1.Fields[col].AsString + #9; mem.Lines.Add(sline); ????????????????????????
DBGrid1.DataSource.DataSet.Next; ???????????????????
end;
// Копируем в clipboard
mem.SelectAll;
mem.CopyToClipboard;
// если необходимо, то отправляем их в Excel

if toExcel then
begin
ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste; ?????????
ExcelApp.Visible := true; ???????????? 
end;
ExcelApp := Unassigned; ????????????
DBGrid1.DataSource.DataSet.GotoBookmark(bm); ???????????
DBGrid1.DataSource.DataSet.FreeBookmark(bm); ???????????
DBGrid1.DataSource.DataSet.EnableControls; ?????????
Screen.Cursor := crDefault;
end;

end

Последний раз редактировалось Stilet; 03.04.2009 в 09:31.
Танюшаа вне форума Ответить с цитированием
Старый 03.04.2009, 09:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Layout: array[0..KL_NAMELENGTH] of char; - МАссив содержащий имя раскладки клавиатуры

LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE); - Загрузить раскладку под номером (именем) 419

bm := DBGrid1.DataSource.DataSet.GetBookm ark; - Поставить закладку на текущую позицию в таблице или наборе, чтобы потом можно было быстро к ней перескочить

DBGrid1.DataSource.DataSet.First; Стать вверх таблицы

DBGrid1.DataSource.DataSet.GotoBook mark(bm); Перескок на закладку
DBGrid1.DataSource.DataSet.FreeBook mark(bm); Удаление закладки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.04.2009, 06:32   #3
Танюшаа
 
Регистрация: 02.04.2009
Сообщений: 7
По умолчанию

Спасибо,БОЛЬШОЕ,Виталий!!!!!!!
Танюшаа вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарии к коду ELL Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.03.2009 16:01
Комментарии к коду Juhn Паскаль, Turbo Pascal, PascalABC.NET 6 24.12.2007 20:29
Комментарии к коду Ярослав Помощь студентам 4 23.11.2007 16:57