Лабораторная работа №3

Создаём приложение в среде Borland Delphi 7, иллюстрирующее работу многопоточных приложений.

Задание к лабораторной №3: В созданном в задании 1 приложении добавить формирование отчетов в Exel Формирование и вывод отчета организовать в отдельном потоке.

Результаты работы: в имеющееся приложение были добавлены код вывода таблицы в Exel отдельным потоком и кнопка (Рисунок 7).

Рисунок 7 – Многопоточное приложение
 

Вначале был создан поток следующим образом:

tr:=beginthread(nil,0,addr(TForm1.axe),nil,0,id);

После этого в этот поток был внесён код для вывода таблицы в Exel c помощью следующего кода:

procedure TForm1.axe;

var

i,j,s:integer;

XL,xlb:variant;

begin

CoInitialize(nil);

XL:=CreateOleObject('Excel.Application');

XL.DisplayAlerts:= false;

xlb:=xl.workbooks.add;

xl.visible:=false;

table1.First;

for j:=1 to table1.FieldCount do

xlb.WorkSheets[1].Columns[j].ColumnWidth:= 17;

for i:=0 to table1.FieldCount-1 do

xlb.WorkSheets[1].Cells[1,i+1]:=table1.fields[i].fieldname;

s:=2;

for i:=0 to table1.RecordCount-1 do

begin

for j:=0 to table1.FieldCount-1 do

xlb.WorkSheets[1].Cells[s,j+1]:=table1.Fields[j].AsString;

inc(s);

table1.Next;

end;

xl.visible:=true;

CoUninitialize;

CloseHandle(tr);

end;

end;



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: