Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gotovy_otchyot.rtf
Скачиваний:
28
Добавлен:
01.04.2015
Размер:
23.15 Mб
Скачать

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

B Delphi класс TIniFile находится в модуле IniFiles, который надо указывать в разделе подключаемых модулей Uses. Объявление переменной, в которую будем заносить (или читать) данные:

Var IniFile :TIniFile;

Объявление переменной, которую необходимо создать:

IniFile :=TIniFile.Create('Название_файла');

Освобождаем память командой:

IniFile.Free;

Задание к лабораторной №2:

  • В созданном в задании 1 приложении, написать программный код для сохранения данных о ширине всех столбцов компонентов DB Grid;

  • Обеспечить хранение пути к БД в ini-файле.

На рисунке 6 можно увидеть данные, которые сохранились в ini-файле после последнего запуска приложения.

Рисунок 6 – Содержание ini-файла

Ini-файлы можно использовать для хранения информации о расположении базы данных, которая необходима для работы приложения. Задание выполнено добавлением кода в приложение, которое было создано в лабораторной №1.

Фрагмент добавленного кода, который создаёт ini-файл в каталоге, где располагается приложение:

TIniFile.Create(ExtractFilePath(Application.ExeName)+'Lab2.ini')

2.2 Создание многопоточных приложений

Потоки в Delphi выполняют функцию имитации псевдопараллельной работы приложения. Как известно, для организации многозадачности операционная система выделяет каждому приложению, выполняющемуся в настоящий момент, определённые кванты времени, длина и количество которых определяется его приоритетом. Поэтому объём работы, который приложение может выполнить, определяется тем, сколько таких квантов оно сможет получить в единицу времени. Для операционной системы каждый поток является самостоятельной задачей, которой выделяются кванты времени на общих основаниях. Поэтому приложение Delphi, умеющее создать несколько потоков, получит больше времени операционной системы, и соответственно сможет выполнить больший объём работы [2].

Создать дополнительный поток в Delphi поможет объект TThread. Мастер создания дополнительного потока в Delphi создаёт отдельный модуль, в рамках которого выполняется поток. Этот модуль имеет тип TThread Object.

Лабораторная работа №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;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]