Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_rabota_dlya_stud.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
548.35 Кб
Скачать

Задачи для самостоятельного решения

1. Напишите программу «Секундомер», форма которой приведен на рис. 4.2, демонстрирует использование компонента TTimer.

Рис. 4.2. Форма «Секундомер»

2. Программа «Угадай число» (рис. 4.3.) демонстрирует использование компонента TProgressBar . Значения свойств компонента следующие: Мin –> 0; Max –> 60; Step –> 1; Position –> 60; Smooth –> true.

Рис. 4.3. Форма программы «Угадай число»

Лабораторная работа № 5 Тема: Работа с компонентами ListBox, OpenDialog, Image.

Цель работы: научиться работать с компонентами отображающие графику.

Краткая теоретическая часть

TListBox – отображает прямоугольную область списка текстовых вариантов для выбора, добавления или вычеркивания. Если все элементы списка не умещаются в отведенную область, то список можно просматривать с помощью линейки прокрутки. Элементы списка содержатся в свойстве Items, а номер элемента, который будет выбран во время выполнения программы, - в свойстве Itemlndex. Окно текстового редактора элементов списка открывается кнопкой в графе значений свойства Items. Можно динамически добавлять, вычеркивать, вставлять и перемещать элементы списка с помощью методов Add, Append, Delete и Insert объекта Items, например:

ListBoxl->Items->Add("Последний элемент списка");

Значение true свойства Sorted устанавливает сортировку элементов списка по алфавиту.

TBitBtn – создает кнопку с изображением битового образа. Такие кнопки чаще всего используются в специальных диалоговых окнах. Графические кнопки имеют свойства для спецификации битовых образов, их вида и размещения на кнопке. Вы можете пользоваться готовыми стилями графических кнопок из отдельного каталога изображений, входящего в поставку C++Buider или собственными картинками, созданными одной из систем редактирования изображений. Различным состояниям кнопки (например, "нажата", "отпущена", "запрещена" и т.п.) могут соответствовать разные битовые образы.

Окно редактора файлов изображений с расширением bmp открывается кнопкой значений свойства Glyph. Свойство Kind поможет вам создать стандартизованные кнопки, снабженные надписями и соответствующей графикой: ОК, Cancel. Helo и другие.

 TImage – создает на форме контейнер графического изображения (битового образа, пиктограммы или метафайла). Окно редактора файлов изображений открывается кнопкой в графе значений свойства Picture. Чтобы контейнер изменил свои размеры так, чтобы вместить изображение целиком, установите значение true свойства AutoSize. Чтобы исходное изображение меньшего размера растянулось на весь контейнер, задайте значение true свойства Stretch.

Используйте методы LoadFromFile и SaveToFile объектного свойства Picture для динамической загрузки и сохранения файлов изображений с помощью инструкций типа:

Image->Picture->LoadFromFile("<имя файла>") ;

Image->Picture->SaveToFile("<имя файла>").

ТOpenDialog – предназначен для выбора файлов. Он предоставляет пользователю возможность продвигаться к файлам от каталога к каталогу в диалоговом окне, обычно для Windows, и выбирать необходимые файлы. Компонент выводит на экран стандартное окно Windows для выбора и открытия файлов. Диалоговое окно появляется в режиме исполнения приложения в момент выполнения метода Execute ().

Программа «Просмотр иллюстраций» позволяет просмотреть jpg-иллюстрации (рис.5.1). Демонстрирует использование компонентов ListBox, OpenDialog, Image. Выбор каталога (папки) выполняется в стандартном окне Открыть файл, которое становится доступным в результате щелчка пот кнопке Выбор. Отображение диалога осуществляет компонент OpenDialog.

Листинг программы

#include <vcl.h>

#pragma hdrstop

#include "BrPicFrm.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

#include <jpeg.hpp> // обеспечивает работу с иллюстрациями в формате JPEG

AnsiString aPath; // каталог, в котором находится иллюстрация

SearchRec aSearchRec; // результат поиска файла

// конструктор

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{

Image1->Proportional = true;

if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)

{

ListBox1->Items->Add(aSearchRec.Name);

while ( FindNext(aSearchRec) == 0 ) // найти следующую иллюстрацию

{

ListBox1->Items->Add(aSearchRec.Name);

}

// отобразить первую иллюстрацию

ListBox1->ItemIndex = 0;

Label1->Caption = ListBox1->Items->Strings[0];

Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[0]);

}}

// щелчок в строке компонента ListBox

void __fastcall TForm1::ListBox1Click(TObject *Sender)

{

int n = ListBox1->ItemIndex; // номер выбранного элемента списка

Label1->Caption = ListBox1->Items->Strings[n];

Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[n]);

}

// щелчок на кнопке Выбор

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

if ( OpenDialog1->Execute() )

{

// пользователь выбрал файл

ListBox1->Clear(); // очистить список

aPath = ExtractFilePath(OpenDialog1->FileName);

Form1->Caption = "Просмотр иллюстраций - " + aPath;

if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)

{

ListBox1->Items->Add(aSearchRec.Name);

while ( FindNext(aSearchRec) == 0 ) // найти следующую иллюстрацию

{

ListBox1->Items->Add(aSearchRec.Name);

}

// определим позицию выбранного пользователем файла в списке ListBox и отобразим его

int n = ListBox1->Items->

IndexOf(ExtractFileName(OpenDialog1->FileName));

ListBox1->ItemIndex = n;

Label1->Caption = ListBox1->Items->Strings[n];

Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[n]);

} }}

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