Храмцов Павел Васильевич
Ввод значений для работы с объектом класса осуществить: с помощью элемента TComboBox (запоминать старые значения), запуск на вычисление выполняется с помощью кнопок TSpeedButton. В соответствии с введёнными значениями нарисовать на Canvas объект (с изменением внутренних значений объекта, объект должен менять графическое представление (уровень воды, температуру). Параметры объекта вывести с помощью TMemo, записывать время изменения параметра.
Чудиловский Максим Сергеевич
Ввод значений для работы с объектом класса осуществить: X с помощью элемента TScrollBar, запуск на вычисление выполняется с помощью элемента TBitBtn. В соответствии с введёнными значениями нарисовать на Canvas объекты (с изменением внутренних значений объекта, объект должен менять графическое представление (например цвет уже прочитанных книг). Параметры объекта вывести с помощью TStaticText.
//---------------------------------------------------------------------------
#include "errors.hpp"
#include <vcl.h>
#pragma hdrstop
#include "filter_mod.hpp"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool nash = false;
bool oneTimeFilt = false;
//! Частота фотона.
double e;
filter_mod_t FL(3);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
int x=0,y=0;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
x=0;
//! Активируем компонент Timer.
Timer1->Enabled=true;
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
//! Timer обеспечивает отображение движущегося фотона.
void __fastcall TForm1::Timer1OnTimer(TObject *Sender)
{
int r=Image1->Tag;
//! Отфильтрованная энергия.
double k=FL.print_energy();
//! Обновляем значение отображаемой отфильтрованной энергии.
Memo2->Lines->Add(k);
//! Прорисовываем движущийся фотон с фильтром.
Image1->Canvas->Brush->Style=1;
Image1->Canvas->Brush->Color=clWhite;
Image1->Canvas->Rectangle(0,0,265,177);
Image1->Canvas->Brush->Color=clRed;
Image1->Canvas->Ellipse(x-3*r,y-3*r,x+r*3,y+r*3);
Image1->Canvas->Brush->Style=7;
Image1->Canvas->Brush->Color=clBlack;
Image1->Canvas->Rectangle(230,20,265,157);
if (x>=230)
{
if(oneTimeFilt != true)FL.filt(e);
oneTimeFilt = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
x=X;
y=Y;
//! Сканируем значение из Memo1.
//! Проверка на корректность вводимой частоты.
try{
e=Memo1->Lines[0][0].ToInt();
FL.set_frien(e);
}
catch(my_exception&g){
MessageDlgPos(g.get_description().c_str(), mtError, TMsgDlgButtons() << mbOK,300,300,300);
}
catch( EConvertError &t ){
MessageDlgPos("Внимание! Вы ввели не число!", mtError, TMsgDlgButtons() << mbOK,300,300,300);
};
Memo2->Lines->Clear();
if(e<40)Image1->Tag=e;
else Image1->Tag=40;
nash = true;
oneTimeFilt = false;
//! Активируем компонент Timer.
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
if(nash == true){
x=X;
y=Y;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
nash= false;
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.