Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет мой.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.46 Mб
Скачать

Задание 17.Конвертор 2

Программа Конвертор-2 (Рис. 23) демонстрирует различные способы отображения справочной информации в формате HTML Help (файл с расширением chm). Окно справки (рис. 1.20) появляется в результате щелчка на кнопке Справка или нажатия клавиши <F1> в момент, когда курсор находится в одном из полей ввода/ редактирования. В последнем случае в окне справочной информации сразу отображается конкретный (нужный) раздел справки. Следует обратить внимание, что отображение справки активизирует процедура обработки события KeyDown, a He KeyPress.

Рис 23

Вывод: В этой программе мы научились демонстрировать различные способы отображения справочной информации в формате HTML Help

Листинг

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

WinExec("winhlp32.exe conv.hlp " , SW_RESTORE);

WinExec("hh.exe -mapid 1 convertor.chm", SW_RESTORE);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{

if (Key == VK_F1 )

WinExec("hh.exe -mapid 3 converter.chm", SW_RESTORE);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{

if (Key == VK_F1 )

WinExec("hh.exe -mapid 4 convertor.chm", SW_RESTORE);

}

//---------------------------------------------------------------------------

Задание 18.Погода

Программа Погода (Рис. 24), форма добавляет в базу данных, представляющую собой текстовый файл, информацию о температуре воздуха. Каждая строка файла данных meteo.txt содержит дату и значение температуры. Если файла данных в текущем каталоге нет, то программа создает его. Программа спроектирована так, что кнопка ОК доступна только в том случае, если поле Температура содержит данные.

Рис 24

Вывод: В этой программе мы научились работать с компонентом MonthCalendar.

Листинг

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int f;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

MonthCalendar1->ShowTodayCircle = false;

MonthCalendar1->Date = Now();

Button1->Enabled = false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString st;

st = MonthCalendar1->Date.DateString() + " " +

Edit1->Text + "\r\n";

if ( FileExists("meteo.txt") )

f = FileOpen("meteo.txt",fmOpenWrite);

else

f = FileCreate("meteo.txt"); // создатьфайл

if ( f != -1 )

{

FileSeek(f,0,2); // установить указатель на конец

// файла

FileWrite(f,st.c_str(),st.Length());

FileClose(f);

Button1->Enabled = false;

}

else

{

ShowMessage("Ошибка доступа к файлу: ни открыть, ни создать не получилось");}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)

{

if ( (Edit1->Text.Length() == 0 ) ||

( (Edit1->Text.Length() ==1) &&

(Edit1->Text[1] == '-') ) )

Button1->Enabled = false;

else

Button1->Enabled = true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if (( Key >= '0')&& (Key<='9'))

return;

// десятичная точка (запятая)

if ( ( Key == '.') || (Key== ','))

{

Key = ',';

if ( Edit1->Text.Pos(',') != 0 )

Key = 0;

return;

}

if ( Key == 8)

return;

if ((Key == '-') && (Edit1->Text.Length() == 0))

return;

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::MonthCalendar1Click(TObject *Sender)

{

Edit1->Text = "";

Edit1->SetFocus();

}

//--------------------------------------------------------------------------