- •Гоувпо «Воронежский государственный технический университет»
- •Методические указания
- •Требования к выполнению и оформлению лабораторных работ
- •Теоретический материал
- •Лабораторная работа № 2 системное по для управления файлами и каталогами в программах пользователя Функции и состав ос
- •Работа с файлами и каталогами в среде Delphi
- •Средства системных модулей
- •Лабораторная работа № 3 управление памятью. Регистровая память
- •Лабораторная работа № 5. Разработка учебных программ и утилит
- •Лабораторная работа № 6. Разработка сервисных программ
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
Лабораторная работа № 5. Разработка учебных программ и утилит
Задание 1. Разработать программу вывода информации в файл Microsoft Excel.
Ход выполнения:
В 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. Разработать программу, позволяющую определить возможные параметры видеорежима экрана и изменение их значений.
Ход выполнения:
В 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. Разработать программу, позволяющую сохранить копию экрана в файл.
Ход выполнения:
В 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. Сдать преподавателю работу.