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 __fastcallTForm1.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 __fastcallTForm1::BHeightClick(TObject *Sender)
{
  Height = Height + 10;
}

void __fastcallTForm1::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 __fastcallTForm1::BSizeClick(TObject *Sender)
{
  Height = 500;
  Width = 700;
}

Это устанавливает для формы конкретные размеры.

Запустите программу на выполнение. Изменяйте размеры формы, щелкая мышью по соответствующим кнопкам.

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

Свойства формы Left и Top определяют положение левого верхнего края формы на экране, соответственно, по горизонтали и по вертикали. Эти значения можно изменять в программе в процессе ее выполнения.

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

Рис. 3. Форма (изменение положения)

Напишите следующие обработчики событий щелчка мышью по этим кнопкам:

Delphi

procedureTForm1.BXMinusClick(Sender: TObject);
begin
  Left := Left - 10;
end;

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

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

procedureTForm1.BYPlusClick(Sender: TObject);
begin
  Top := Top + 10;
end;

C++Builder

void __fastcallTForm1::BXMinusClick(TObject *Sender)
{
  Left = Left - 10;
}

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

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

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

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

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

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

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

Установите значение свойства AlphaBlendв True, а свойству AlphaBlendValue задайте значение 120. Запустите на выполнение программу. Форма будет едва видна на экране.

Установите прозрачность 255. Положите на форму две кнопки, задав для них тексты Прозрачность +и Прозрачность —, присвоив им имена OpacityPlus и OpacityMinus. Щелчок мышью по первой будет увеличивать значение свойства AlphaBlendValue, по второй — уменьшать.

Рис. 4. Форма (изменение прозрачности)

Напишите обработчик события щелчка по кнопке Прозрачность +:

Delphi

procedureTForm1.OpacityPlusClick(Sender: TObject);
begin
  if (AlphaBlendValue <= 245) then
    AlphaBlendValue := AlphaBlendValue + 10;
end;

Обработчик события щелчка по кнопке Прозрачность —:

procedureTForm1.OpacityMinusClick(Sender: TObject);
begin
  if (AlphaBlendValue >= 10) then
    AlphaBlendValue := AlphaBlendValue - 10;
end;

C++Builder

Обработчик события щелчка по кнопке Прозрачность +:

 

void __fastcallTForm1::OpacityPlusClick(TObject *Sender)

{
  if (AlphaBlendValue <= 245)
    AlphaBlendValue = AlphaBlendValue + 10;
}

Обработчик события щелчка по кнопке Прозрачность —:

void __fastcallTForm1::OpacityMinusClick(TObject *Sender)
{
  if (AlphaBlendValue >= 10)
    AlphaBlendValue = AlphaBlendValue - 10;
}

Запустите программу на выполнение. Изменяйте уровень прозрачности, щелкая мышью по соответствующим кнопкам.

Читать на сайте автора.

Ошибка загрузки в RichEdit большого блока данных

Давеча пришлось дорабатывать одну из утилит сбора информации о системе и как-то неожиданно для меня от отдела тестирования пришел багрепорт плана:
Утилита формирует и сохраняет данные

http://alexander-bagel.blogspot.com/2014/02/richedit.html

Лучшее в Delphi блогах за 2013 год.

 Обновлено 2014.02.21 22:34 Подборка ссылок на лучшие публикации по Delphi за 2013 год. Аналогичные подборки за предыдущие годы: за 2009 год за 2010 год за

Читать на сайте автора.

Лучшее в Delphi блогах за 2013 год.

 Обновлено 2014.02.21 22:34
Подборка ссылок на лучшие публикации по Delphi за 2013 год.
Аналогичные подборки за предыдущие годы: за 2009 год за 2010 год за 2011 год за 2012 год Оглавление Firemonkey. Кроссплатформенная разработка и разработка для мобильных устройств Мобильная разработка Delphi. Разработка для iOs Delphi. Разработка для Android Delphi pascal-study  svg. Переводы справочной системы Delphi Задачки на понимание Библиотеки и компоненты Авторские библиотеки Windows Ribbon Framework Инструменты Полезные и не очень советы Управление лицензиями RAD Studio Вебинары. Интервью Поток сознания Александра Люлина # Firemonkey….

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Читать на сайте автора.

Шифрование баз данных в InterBase

Наконец-то дописал статью про шифрование баз.

http://www.ibase.ru/devinfo/ib-encrypt.htm

Вопросы можете задавать как удобнее — либо здесь в комментариях, либо на email в конце статьи.

Читать на сайте автора.

Android, Delphi, и … где моя база?

Еще в сентябре 2013 года, на презентации RAD Studio XE5 я докладывал про IBLite, как с ним работать на мобильных устройствах.
http://www.youtube.com/watch?v=YMs1buTLI1Y
Однако сразу же возник вопрос — где находится база данных на смартфоне, как ее «вытащить», обновить, и так далее. Покопавшись в разных местах, ясного ответа не нашел, а экспериментировать вслепую, или перечитывать тонны абстрактной документации по Андроиду, не хотелось.

И вот, к счастью, нашелся человек, который просто и понятно объяснил, где что и как:

Рекомендую блог Андрея Ефимова, особенно статьи:

Deployment Manager или куда ещё можно задеплоить файлы

Получаем список доступных устройств хранения информации
(должна быть правка под мою Sony Xperia V)

Обновляем файл базы данных без перезапуска приложения
(тут про SQLite, но можно легко переделать и на IBLite)

Собственно, эти статьи, и тестирование кода явились как бы хорошим пинком в правильном направлении, в результате которого я форсирую проведение экспериментов в этой области. Что выйдет быстрее — вебинар с Embarcadero или статья в блоге, пока не знаю. Ждите новостей.

Читать на сайте автора.

Есть ли жизнь после триала?

Предпродажная демонстрация возможностей ПО обычно сводится к двум решениям:
Ограничение функциональности ПО, так называемый демо-комплект.Введение временного (тестового) периода, в течении которого ПО работает с полным функционалом,

http://alexander-bagel.blogspot.com/2014/02/blog-post.html

Вопросик про Show, Hide и Visible

Бывает, знаете ли, полезно скрывать часть информации от пользователя, если она ему в данный момент не нужна. Для этого у контролов в VCL есть свойство Visible, и есть ещё два метода – Show и Hide. Эта троица призвана управлять видимостью контролов на форме.
А вопрос такой. Как лучше писать:

LabelSomeInfo.Visible := True;

или

LabelSomeInfo.Show;

?
Как пишете Вы? Почему?

 

Ответ в следующей заметке.

Читать на сайте автора.

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

Приложение, содержащее несколько форм в Delphi и C++Builder

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

Задание характеристик главной формы

Установите для главной формы следующие значения свойств:

Читать на сайте автора.

Несколько способов скрыть MDIChild окно

Читать на сайте автора.