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

Задача 9. Добрый день

Измените программу Добрый день таким образом, чтобы в зависимости от времени суток менялся не только текст приветствия, но и фоновый рисунок.(рис. 71)

Рис 71

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

Листинг

#include <vcl.h>

#pragma hdrstop

#include <DateUtils.hpp>

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

Graphics::TBitmap *bgp; // фоновыйрисунок

AnsiString sMonth[] = {"","января","февраля","марта",

"апреля","мая","июня",

"июля","августа","сентября",

"октября","ноября","декабря"};

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

bgp = new Graphics::TBitmap();

try

{

bgp->LoadFromFile("sky.bmp");

}

catch (EFOpenError &e)

{ }

}

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

void __fastcall TForm1::FormPaint(TObject *Sender)

{

int h;

AnsiString mes;

int wt,ht;

int x,y;

h = HourOf(Now());

if ( h <= 4 ) mes = "Доброй ночи!";

else if ( h < 12 ) mes = "Доброеутро!" ;

else if ( h <= 16) mes = "Добрыйдень!" ;

else mes = "Добрыйвечер!";

Form1->Font->Name = "Times New Roman";

//Forml->Font->Color = clBlue;

Form1->Canvas->Font->Size = 20;

wt = Canvas->TextWidth(mes);

ht = Canvas->TextHeight(mes);

x = (ClientWidth - wt) / 2;

y = ClientHeight / 2 - ht;

Canvas->Draw(0,0,bgp);

Canvas->Brush->Style = bsClear;

Canvas->TextOutA(x,y,mes);

y = y + ht;

mes = FormatDateTime("Сегодня d", Now() );

mes = mes + " " + sMonth[MonthOf( Now())] + ", " +

FormatDateTime("dddd", Now() );

Canvas->Font->Size -= 4;

wt = Canvas->TextWidth(mes);

ht = Canvas->TextHeight(mes);

x = (ClientWidth - wt) / 2;

y = y + 6;

Canvas->TextOutA(x,y,mes);

}

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

void __fastcall TForm1::FormResize(TObject *Sender)

{

Form1->Refresh();

}

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

Задача 10. Часы

Напишите программу Часы, в окне которой отображается текущее время. Двоеточие на индикаторе должно мигать.

Вывод: В этом задании мы создали программу часы .

Листинг

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#include "DateUtils.hpp"

#include "math.h"

#pragma resource "*.dfm"

#define R 75

TForm1 *Form1;

int x0, y0;

int ahr,amin,asec;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

TDateTime t;

ClientHeight = (R + 30)*2;

ClientWidth = (R + 30)*2;

x0 = R + 30;

y0 = R + 30;

t = Now();

ahr = 90 - HourOf(t)*30-(MinuteOf(Today() ) / 12) *6;

amin = 90 - MinuteOf(t)*6;

asec = 90 - SecondOf( Today() )*6;

Timerl->Interval = 1000;

Timerl->Enabled = true;

}

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