Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 40076.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
392.19 Кб
Скачать

Лабораторная работа № 5. Разработка учебных программ и утилит

Задание 1. Разработать программу вывода информации в файл Microsoft Excel.

Ход выполнения:

  1. В Delphi создать проект на диске с уникальным именем.

2. На форму поместить компонент ExcelApplication, расположенный на вкладке Server палитры компонентов.

3. Объявить переменную ExcelApplication следующим образом:

ExcelApplication:Variant

4. Добавить модуль ComObj в раздел описания implementation:

uses ComObj

5. В событие формы OnCreate вставить операторы для запуска объекта Excel:

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

ExcelApplication.visible:=true;

6. В событие формы OnClose вставить операторы для выгрузки объекта Excel:

ExcelApplication.Quit;

7. На форму поместить кнопочный компонент, в котором событие OnClick будет заполнять файл Excel данными с использованием следующих операторов:

{добавить новый документ}

ExcelApplication.WorkBooks.Add;

{заполнение данными}

ExcelApplication.Cells[1,1].Font.Bold:=True;

ExcelApplication.Cells[1,1].value:='Заголовок';

n_str:=2; n_sto:=1;

ExcelApplication.Cells[n_str,n_sto].Borders[1].LineStyle:=1;

ExcelApplication.Cells[n_str,n_sto].Borders[2].LineStyle:=1;

ExcelApplication.Cells[n_str,n_sto].Borders[3].LineStyle:=1;

ExcelApplication.Cells[n_str,n_sto].Borders[4].LineStyle:=1;

ExcelApplication.Columns[n_sto].ColumnWidth:=20;

ExcelApplication.Cells[n_str,n_sto].Value:=1;

ExcelApplication.ActiveWindow.DisplayGridlines:=False;

ExcelApplication.visible:=true; {просмотр файла}

8. Самостоятельно организовать интерфейс ввода исходных данных на форме для записи информации в файл Excel.

9. Сдать преподавателю работу.

Задание 2. Разработать программу, позволяющую определить возможные параметры видеорежима экрана и изменение их значений.

Ход выполнения:

  1. В Delphi создать проект на диске с уникальным именем.

2. На форме создать два кнопочных компонента (1 - для вывода возможных значений видеорежима, 2 - для изменения) и компонент ListBox для просмотра параметров видеорежима.

3. В разделе Private объявить массив из переменных типа TDevMode, в котором будут сохранять параметры найденных видеорежимов:

modes:array[0..255] of TDevMode;

4. Для кнопки вывода возможных значений видеорежима событие OnClick состоит из следующих операторов:

ListBox1.Items.Clear; {чистка содержимого}

i := 0;

while EnumDisplaySettings(nil, i, Modes[i]) do

begin

ListBox1.Items.Add(IntToStr(Modes[i].dmBitsPerPel)+' '+

IntToStr(Modes[i].dmPelsWidth)+' '+

IntToStr(Modes[i].dmPelsHeight)+ ' '+

IntToStr(Modes[i].dmDisplayFrequency));

Inc(i);

end;

В качестве строки в список ListBox передается следующая информация:

Modes[i].dmBitsPerPel - глубина (количество бит

на пиксель) цвета найденного режима.

Modes[i].dmPelsWidth - ширина экрана.

Modes[i].dmPelsHeight - высота экрана.

Modes[i].dmDisplayFrequency - частота развертки.

5. Кнопка изменения видеорежима должна установить выделенный в списке режим. Для этого в событие OnClick введем следующие операторы:

Modes[ListBox1.ItemIndex].dmFields := DM_BITSPERPEL or

DM_PELSWIDTH or DM_PELSHEIGHT or

DM_DISPLAYFLAGS or DM_DISPLAYFREQUENCY;

ChangeDisplaySettings(Modes[ListBox1.ItemIndex], 0);

Прежде чем менять видеорежим, в структуре Modes заполняется свойство dmFields, в котором указывается, что именно нужно поменять. Здесь можно указать сочетание следующих флагов:

DM_BITSPERPEL — будет меняться количество бит на пиксель.

DM_PELSWIDTH - будет меняться ширина экрана.

DM_PELSHEIGHT — будет меняться высота экрана.

DM_DISPLAYFREQUENCY — будет меняться частота развертки.

DM_DISPLAYFLAGS — изменить флаги дисплея.

6. Для проверки установленного видеорежима добавьте два компонента Edit и кнопку, у которой событие OnClick покажет разрешение экрана:

Edit1.Text := IntToStr(Screen.Width);

Edit2.Text := IntToStr(Screen.Height);

7. Самостоятельно доработать программу и организовать вывод возможных видеорежимов экрана в таблицу Excel.

8. Сдать преподавателю работу.

Задание 3. Разработать программу, позволяющую сохранить копию экрана в файл.

Ход выполнения:

  1. В Delphi создать проект на диске с уникальным именем.

2. На форму поместить кнопочный компонент, в котором событие OnClick будет выполнять следующие действия (1-ый способ):

var

bmp: TBitmap;

DC: HDC;

begin

bmp:=TBitmap.Create;

bmp.Height:=Screen.Height;

bmp.Width:=Screen.Width;

DC:=GetDC(0); //Дескpиптоp экpана

bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,

DC, 0, 0, SRCCOPY);

bmp.SaveToFile('Screen.bmp');

ReleaseDC(0, DC);

3. На форму поместить кнопочный компонент, в котором событие OnClick будет выполнять следующие действия (2-ой способ):

var

DC: HDC;

Canva: TCanvas;

B: TBitmap;

begin

Canva := TCanvas.Create;

B := TBitmap.Create;

DC := GetDC(0);

try

Canva.Handle := DC;

with Screen do

begin

B.Width := Width;

B.Height := Height;

B.Canvas.CopyRect(Rect(0, 0, Width, Height),

Canva, Rect(0, 0, Width, Height));

B.SaveToFile('screentofile.bmp');

end

finally

ReleaseDC(0, DC);

B.Free;

Canva.Free

end

4. Самостоятельно доработать программу в части: подключить горячие клавиши, сделать ее без загрузки формы на экран и т.п.

5. Сдать преподавателю работу.