{double a = 50;-> Canvas ->MoveTo(100,100);-> Canvas ->LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));-> Canvas ->LineTo(100-a*sin(36*PI/180)+a*sin(72*PI/180),100-a*cos(36*PI/180)-a*cos(72*PI/180));-> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));-> Canvas ->MoveTo(100,100);-> Canvas ->LineTo(100+a,100);-> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));-> Canvas ->LineTo(100+a+a*sin(36*PI/180)+a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));-> Canvas ->LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));-> Canvas ->MoveTo(100+a,100);-> Canvas -> LineTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180)-a*sin(36*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180)+a*cos(36*PI/180));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);-> Canvas -> MoveTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180))-a*cos(18*PI/180),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a-a*sin(18*PI/180));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));-> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));-> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));-> Canvas -> LineTo(100-a*sin(36*PI/180)-a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));-> Canvas -> LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));-> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));-> Canvas -> LineTo(100,100);}
//---------------------------------------------------------------------------
Практична робота 13. "Програми для роботи з глобальними
ідентифікаторами Screen, Mouse, Application"
Завдання 13.1
Створити застосування, яке:
Користуючись глобальним об’єктом Screen при своєму завантаженні використовуватиме перевірку розміра екрана монітору і при перевищені формою цього розміру автоматично прирівнюватиме до нього, а також виводитиме у компонент ComboBox1 список всіх шрифтів даного комп’ютера.
Користуючись глобальним об’єктом Mouse у StatusBar виводити поточні координати курсора миші відносно форми та екрану, а також при натисканні на кнопку використовуватиме реверсну зміну кнопок миші.
Користуючись властивостями компоненту ApplicationEvents при наведені мишею на будь-якийкомпонент на формі у StatusBar виводився текст підказки закладений у властивість Hint кожного компонента.
При натисненні клавіші Num Lock, Caps Lock та Insert вивести у Statusbar стан кнопок.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"*Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)
{>Width = this->Width > Screen->Width ? Screen->Width : this->Width;>Height = this->Height > Screen->Height ? Screen->Height : this->Height;->Items->Assign(Screen->Fonts);
}
//---------------------------------------------------------------------------__fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{POINT pos;(&pos);->Panels->Items[0]->Text = "Экран: x=" + FloatToStr(pos.x) + " y=" + FloatToStr(pos.y);->Panels->Items[1]->Text = "\nФорма: x=" + FloatToStr(pos.x-Left) + \
" y=" + FloatToStr(pos.y-Top);
}
//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)
{bool b( false );( b = !b );
}
//---------------------------------------------------------------------------__fastcall TForm1::ApplicationEvents1ActionExecute(TBasicAction *Action, bool &Handled)
{ StatusBar1->Panels->Items[2]->Text = Application->Hint;}
//---------------------------------------------------------------------------__fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{(Key)
{VK_CAPITAL:->Panels->Items[3]->Text = (::GetKeyState(VK_CAPITAL)) ? "CapsLock" : "bbb";;VK_NUMLOCK:->Panels->Items[3]->Text = (::GetKeyState(VK_NUMLOCK)) ? "NumLock" : "bbb";;VK_SCROLL:->Panels->Items[3]->Text = (::GetKeyState(VK_SCROLL)) ? "ScrollLock" : "bbb";;
}
}
//---------------------------------------------------------------------------
Практична робота 14. "Програми для роботи зі
стандартними діалоговими компонентами"
Завдання 14.1
За допомогою компонентів FontDialog, PrintDialog, PrintSetupDialog реалізувати підтримку форматованого
тексту в компоненті RichEdit з
можливістю друку його вмісту.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"*Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------__fastcall TForm1::N1Click(TObject *Sender)
{ if (PrintDialog1->Execute()) {
Printer()->BeginDoc();
for(int i = 0;i<RichEdit1->Lines->Count;i++)
Printer()->Canvas->TextOut(100,100+(RichEdit1->Font->Size+80)*i,RichEdit1->Lines->Strings[0]) ;
Printer()->EndDoc(); }}
//---------------------------------------------------------------------------__fastcall TForm1::N3Click(TObject *Sender)
{->Execute();
}
//---------------------------------------------------------------------------__fastcall TForm1::N2Click(TObject *Sender)
{(FontDialog1 -> Execute()) RichEdit1->Font = FontDialog1->Font ;
}
//---------------------------------------------------------------------------
програма керування інтерфейс ідентифікатор
Практична робота 15. "Програма для роботи з аудіо- та
відео- файлами"
Завдання 15.1
Створити застосування, яке програватиме аудіо- та відео-
файли. Файли завантажуються в програму за допомогою компонента TOpenDialog.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"*Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)
{->Close();(OpenDialog1->Execute()) {->FileName = OpenDialog1->FileName;->Open();->Display=Panel1;->Play();
} }
//---------------------------------------------------------------------------