среда, 26 февраля 2014 г.

6. Свойства и методы формы. Лабораторные Delphi, C++ (3)


Размеры, положение и прозрачность формы в Delphi и C++Builder



Запустите на выполнение Delphi или C++Builder. Создайте новый проект, выбрав в меню File | New | VCL Forms Application - Delphi (File | New | VCL Forms Application – C++Builder). Появится форма нового проекта.

Завершение работы программы


Оставьте для формы все значения свойств по умолчанию.
Положите на форму кнопку Button. Присвойте кнопке текст Закрыть. Установите имя (свойство Name) BExit. Форма примет следующий вид:








Рис. 1. Начальный вид формы
Дважды щелкните мышью по кнопке Закрыть. Появится заготовка для обработчика события щелчка по кнопке, где нужно написать оператор завершения работы всего приложения (метод Terminate() объекта Application):
Delphi

procedure TForm2.Button1Click(Sender: TObject);
begin
  Application.Terminate();
end;
C++Builder
void __fastcall TForm1.BExitClick(Sender: TObject);
{
    Application->Terminate();
}
Запустите программу на выполнение. Щелкните по кнопке Закрыть. Работа программы будет завершена.

Изменение размера формы


Свойство формы Height задает размер высоты, а свойство Width задает размер ширины формы в пикселах.
Положите на форму из набора инструментов Tool Palette еще три кнопки Button. Одной присвойте текст Высота, другой Ширина, третьей Размер. Задайте имена BHeight, BWidth и BSize, соответственно.
(Как правило, я стараюсь в реальных программах присваивать компонентам осмысленные имена. Имена кнопок начинаю с символа B, элементов меню — с M).










Рис. 2. Форма (изменение размеров)
Для кнопки Высота напишите обработчик события щелчка по кнопке, при котором высота формы увеличивается на 10 пикселов. Для кнопки Ширина напишите обработчик события щелчка по кнопке, при котором ширина формы увеличивается на 10 пикселов.
Delphi
procedure TForm2.BHeightClick(Sender: TObject);
begin
  Height := Height + 10;
end;

procedure TForm2.BWidthClick(Sender: TObject);
begin
  Width := Width + 10;
end;
C++Builder
void __fastcall TForm1::BHeightClick(TObject *Sender)
{
  Height = Height + 10;
}

void __fastcall TForm1::BWidthClick(TObject *Sender)
{
  Width = Width + 10;
}
Выделите мышью кнопку Высота. Установите значение свойства Default в True. Для этой кнопки будет вызываться событие OnClick, когда пользователь нажмет клавишу Enter. Выделите мышью кнопку Ширина. Установите значение свойства Cancel в True. Для этой кнопки будет вызываться событие OnClick, когда пользователь нажмет клавишу Esc.
Напишите следующий обработчик щелчка мышью по кнопке Размер:
Delphi
procedure TForm2.BSizeClick(Sender: TObject);
begin
  Height := 500;
  Width := 700;
end;
C++Builder
void __fastcall TForm1::BSizeClick(TObject *Sender)
{
  Height = 500;
  Width = 700;
}
Это устанавливает для формы конкретные размеры.
Запустите программу на выполнение. Изменяйте размеры формы, щелкая мышью по соответствующим кнопкам.

Изменение положения формы на экране


Свойства формы Left и Top определяют положение левого верхнего края формы на экране, соответственно, по горизонтали и по вертикали. Эти значения можно изменять в программе в процессе ее выполнения.
Положите на форму четыре новые кнопки X+, X-, Y+, Y-, присвоив им осмысленные имена BXPlus, BXMinus, BYPlus, BYMinus. При щелчке пользователя по этим кнопкам форма должна перемещаться в указанных направлениях на 10 пикселов.









Рис. 3. Форма (изменение положения)
Напишите следующие обработчики событий щелчка мышью по этим кнопкам:
Delphi
procedure TForm1.BXMinusClick(Sender: TObject);
begin
  Left := Left - 10;
end;

procedure TForm1.BXPlusClick(Sender: TObject);
begin
  Left := Left + 10;
end;

procedure TForm1.BYMinusClick(Sender: TObject);
begin
  Top := Top - 10;
end;

procedure TForm1.BYPlusClick(Sender: TObject);
begin
  Top := Top + 10;
end;
C++Builder
void __fastcall TForm1::BXMinusClick(TObject *Sender)
{
  Left = Left - 10;
}

void __fastcall TForm1::BXPlusClick(TObject *Sender)
{
  Left = Left + 10;
}

void __fastcall TForm1::BYMinusClick(TObject *Sender)
{
  Top = Top - 10;
}

void __fastcall TForm1::BYPlusClick(TObject *Sender)
{
  Top = Top + 10;
}

Размещение формы поверх остальных форм на экране


Чтобы форма всегда была видна на экране и размещалась поверх всех других форм, нужно установить свойство формы FormStyle в значение fsStayOnTop. Запустите программу на выполнение. Делайте другие приложения активными. Данная форма всегда будет находиться поверх всех форм.

Изменение прозрачности формы

Свойство AlphaBlendValue позволяет установить степень прозрачности формы. По умолчанию задано 255, то есть форма полностью непрозрачна. Значение 0 задает совершенно прозрачную форму, которая на экране просто не будет видна. Промежуточные значения задают градации прозрачности. Это свойство применяется только в том случае, если значение свойства AlphaBlend установлено в True.
Установите значение свойства AlphaBlend в True, а свойству AlphaBlendValue задайте значение 120. Запустите на выполнение программу. Форма будет едва видна на экране.
Установите прозрачность 255. Положите на форму две кнопки, задав для них тексты Прозрачность + и Прозрачность -, присвоив им имена OpacityPlus и OpacityMinus. Щелчок мышью по первой будет увеличивать значение свойства AlphaBlendValue, по второй — уменьшать.











Рис. 4. Форма (изменение прозрачности)
Напишите обработчик события щелчка по кнопке Прозрачность +:
Delphi
procedure TForm1.OpacityPlusClick(Sender: TObject);
begin
  if (AlphaBlendValue <= 245) then
    AlphaBlendValue := AlphaBlendValue + 10;
end;
Обработчик события щелчка по кнопке Прозрачность -:
procedure TForm1.OpacityMinusClick(Sender: TObject);
begin
  if (AlphaBlendValue >= 10) then
    AlphaBlendValue := AlphaBlendValue - 10;
end;
C++Builder
Обработчик события щелчка по кнопке Прозрачность +:
 void __fastcall TForm1::OpacityPlusClick(TObject *Sender)
{
  if (AlphaBlendValue <= 245)
    AlphaBlendValue = AlphaBlendValue + 10;
}
Обработчик события щелчка по кнопке Прозрачность -:
void __fastcall TForm1::OpacityMinusClick(TObject *Sender)
{
  if (AlphaBlendValue >= 10)
    AlphaBlendValue = AlphaBlendValue - 10;
}
Запустите программу на выполнение. Изменяйте уровень прозрачности, щелкая мышью по соответствующим кнопкам.



Комментариев нет:

Отправить комментарий