|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.04.2009, 16:56 | #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.DisableC ontrols; ???????? bm := DBGrid1.DataSource.DataSet.GetBookm ark; ???????? DBGrid1.DataSource.DataSet.First; ????????? // создаём объект Excel if toExcel then begin ExcelApp := CreateOleObject('Excel.Application' ); ExcelApp.WorkBooks.Add(xlWBatWorkSh eet); ????????? 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.RecordCo unt - 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.GotoBook mark(bm); ??????????? DBGrid1.DataSource.DataSet.FreeBook mark(bm); ??????????? DBGrid1.DataSource.DataSet.EnableCo ntrols; ????????? Screen.Cursor := crDefault; end; end. |
02.04.2009, 17:00 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с обьяснением кода | Alex1991 | Помощь студентам | 4 | 31.03.2009 18:21 |
Помогите с оптимизированием кода | nikzntu | Общие вопросы C/C++ | 3 | 25.03.2009 17:37 |
Помогите в написании кода... | sobol556 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 23.03.2009 19:49 |
Выдернуть куски кода из html-кода | trafbite | Помощь студентам | 7 | 18.08.2007 13:51 |