Момент окончания изменения размера или перемещения окна
type
TForm1 = class(TForm)
private{ Private declarations }publicprocedure WMEXITSIZEMOVE(varMessage: TMessage);
message WM_EXITSIZEMOVE;
{ Public declarations }end;
var
Form1: TForm1;
implementation{$R *.DFM}procedure TForm1.WMEXITSIZEMOVE(varMessage: TMessage);
begin
Form1.Caption := 'Finished Moving and sizing';
end;
Here's the translation of the text into Russian:
Данный код программирования на Delphi создает форму (окно) с заголовком "Finished Moving and sizing", когда пользователь останавливается от изменения размера или перемещения формы.
Разбивка каждого элемента:
type TForm1 = class(TForm) - эта строка определяет новый форм, TForm1, который является подклассом стандартной формы Delphi (TForm).
Приватная секция пуста, потому что не объявлены приватные переменные или процедуры.
Общественная секция имеет одну процедуру, WMEXITSIZEMOVE, которая обрабатывает Windows-сообщение WM_EXITSIZEMOVE. Это сообщение отправляется окну, когда оно перестает изменяться размером или перемещаться.
В разделе реализации мы имеем определение этой процедуры. Она устанавливает заголовок формы (Form1.Caption) в "Finished Moving and sizing".
Строка var Form1: TForm1; объявляет переменную Form1 типа TForm1, которая является экземпляром нашего кастомного форм.
Директива $R *.DFM указывает Delphi, где найти файл дизайна формы (файл ресурсов).
Когда вы запустите этот код, он создаст форму с заголовком "Finished Moving and sizing", когда вы остановитесь от изменения размера или перемещения ее.
Альтернативное решение:
Вместо обрабатывания сообщения WM_EXITSIZEMOVE, мы можем переопределить события OnResize и OnMove, чтобы установить заголовок формы. Это подход более типичен для Delphi и проще в поддержке.
type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure FormResize(Sender: TObject); // override OnResize
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
// override OnMove
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormResize(Sender: TObject);
begin
Caption := 'Finished Resizing';
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Caption := 'Finished Moving and sizing';
end;
В этом коде:
Процедура FormResize устанавливает заголовок, когда форма изменяется размером.
Процедура FormMouseMove устанавливает заголовок, когда форма перемещается.
В статье описывается создание в Delphi компонента, который изменяет заголовок формы после изменения размера или перемещения окна.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.