Закрыть форму с анимациейDelphi , Программа и Интерфейс , Размеры и ПоложениеЗакрыть форму с анимацией
Оформил: DeeCo var tutup: Boolean; i: Integer; procedure TForm1.Timer1Timer(Sender: TObject); var reg1, reg2: hrgn; begin if tutup = True then begin i := i + 10; reg1 := CreateRoundRectRgn(0 + i, 0 + i, Width - i, Height - i, 20, 20); SetWindowRgn(Handle, reg1, True); end; if i >= Width then begin tutup := False; i := 1; end; if tutup = False then begin i := i + 10; reg1 := CreateRectRgn(0, 0, (Width div 2) - i, Height); reg2 := CreateRectRgn((Width div 2) + i, 0, Width, Height); CombineRgn(reg1, reg1, reg2, rgn_or); SetWindowRgn(Handle, reg1, True); if i >= Width div 2 then begin tutup := True; i := 1; end; end; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var reg1: hrgn; begin i := 1; timer1.Enabled := True; if MessageDlg('Exit now ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then CanClose := True else begin CanClose := False; timer1.Enabled := False; reg1 := CreateRoundRectRgn(0, 0, Width, Height, 0, 0); SetWindowRgn(Handle, reg1, True); end; end; procedure TForm1.FormCreate(Sender: TObject); begin tutup := True; timer1.Enabled := False; end; Перевод кода на русский язык: Данный код является частью приложения Delphi, которое создает форму с анимацией при ее закрытии или минимальизации. Анимация достигается путем изменения стиля рамки формы с помощью функции Windows API Разбивка кода:
Код можно улучшить следующим образом:
Пример рефакторинга кода:
В статье описана реализация анимации закрытия формы с использованием Timer, Rgn и MessageDlg в Delphi, чтобы создать интересное и динамичное отображение процесса закрытия формы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Размеры и Положение ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |