- •Київський національний університет
- •Практична робота 1 Програми лінійної структури
- •Практична робота 2 Програми розгалуженої структури
- •Практична робота 3 Програмна реалізація функцій для роботи з датою та часом
- •Практична робота 4 Програма для роботи з візуальними компонентами керування
- •Практична робота 5 Програми циклічної структури
- •Практична робота 6 Програми для роботи з масивами даних
- •Практична робота 7 Програми для роботи з рядками даних
- •Практична робота 8 Створення інтерфейсу користувача стандартними подіями
- •Практична робота 9 Програми для роботи з власними функціями
- •Практична робота 10 Програми для роботи зі структурами даних
- •Практична робота 11 Програми для роботи з файлами
- •Практична робота 12 Програми для роботи з графічної підсистемою
- •Практична робота 13 Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application
- •Практична робота 14 Програми для роботи зі стандартними діалоговими компонентами
- •Практична робота 15 Програма для роботи з аудіо- та відео- файлами
Практична робота 13 Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application
Завдання 13.1
Користуючись глобальним об’єктом Screen при своєму завантаженні виконуватиме перевірку розміру екрана монітору і при перевищенні формою цього розміру автоматично прирівнюватиме до нього, а також виводитиме у компонент ComboBox1 список всіх шрифтів даного комп’ютера.
Користуючись глобальним об’єктом Mouse у StatusBar виводити поточні координати курсору миші відносно форми та екрану. А також при натисненні на кнопку виконуватиме реверсну зміну кнопок миші.
Користуючись властивостями компоненту ApplicationEvents, при наведенні мишею на будь-який компонент на формі у StatusBar виводився текст підказки закладений у властивість Hint кожного компонента.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i = 0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
Label2->Caption = IntToStr(Screen->Width) + ";" + IntToStr(Screen->Height);
ComboBox1->Items = Screen->Fonts;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
Label4->Caption= IntToStr(Form1->ClientWidth) + ";" + IntToStr(Form1->ClientHeight);
int ScreenSize;
int FormSize;
ScreenSize = Screen->Height + Screen->Width;
FormSize = Form1->ClientHeight + Form1->ClientWidth;
if (FormSize > ScreenSize)
{
Form1->ClientWidth = Screen->Width;
Form1->ClientHeight = Screen->Height;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TPoint pt;
GetCursorPos(&pt);
StatusBar1->Panels->Items[0]->Text = IntToStr(pt.x) + ";" + IntToStr(pt.y);
StatusBar1->Panels->Items[1]->Text = IntToStr(X) + ";" + IntToStr(Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GroupBox2MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
TPoint pt;
GetCursorPos(&pt);
StatusBar1->Panels->Items[0]->Text = IntToStr(pt.x) + ";" + IntToStr(pt.y);
StatusBar1->Panels->Items[1]->Text = IntToStr(X) + ";" + IntToStr(Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GroupBox1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
TPoint pt;
GetCursorPos(&pt);
StatusBar1->Panels->Items[0]->Text = IntToStr(pt.x) + ";" + IntToStr(pt.y);
StatusBar1->Panels->Items[1]->Text = IntToStr(X) + ";" + IntToStr(Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
switch (i)
{
case 0 : {SwapMouseButton(true);i++;break;}
case 1 : {SwapMouseButton(false);i--;break;}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Hint(TObject *Sender)
{
StatusBar1->SimpleText = Application->Hint;
}
//---------------------------------------------------------------------------
Завдання 13.4
При натисненні клавіш Num Lock, Caps Lock, та Insert вивести у StatusBar стан кнопок.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
for (int i = 0; i < 3; i++)
{
StatusBar1->Panels->Add();
StatusBar1->Panels->Items[i]->Width = StatusBar1->Parent->Width/3;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
switch (Key)
{
case VK_CAPITAL: StatusBar1->Panels->Items[0]->Text = (::GetKeyState(VK_CAPITAL)) ? "Caps Lock" : "";
break;
case VK_NUMLOCK: StatusBar1->Panels->Items[1]->Text = (::GetKeyState(VK_NUMLOCK)) ? "NumLock" : "";
break;
case VK_INSERT: StatusBar1->Panels->Items[2]->Text = (::GetKeyState(VK_INSERT)) ? "Insert" : "";
break;
}
}
//---------------------------------------------------------------------------