Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Перемещение мышью панели на форме во время выполнения программы

Delphi , Компоненты и Классы , TPanel

Перемещение мышью панели на форме во время выполнения программы

Автор: Aleksey


{Так можно таскать мышкой TPanel по форме в run-time'е.
Поместите на форму TPanel и напишите обработчик события OnMauseDown,
запустите программу и задвинте эту панель подальше.}

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DRAGMOVE = $F012;
begin
  ReleaseCapture;
  {а если сюда написать Form1, то можно таскать форму по экрану}
  Panel1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;

на самом деле таким образом можно таскать по форме любые визуальные компоненты.

Программный код на Delphi, демонстрирующий перемещение панели вокруг формы с помощью событий мыши.

Идея заключается в обработке события OnMouseDown панели, которое вызывается при клике пользователем левой кнопкой мыши на панели. В этом обработчике код вызывает ReleaseCapture, чтобы освободить любую захваченную мышь, которую может держать другой контроль или форма.

Затем код использует метод Perform для имитации системного команды (WM_ SYSCOMMAND) с флагом перемещения (SC_DRAGMOVE). Это сообщает Windows начать отслеживать движение мыши и позволить пользователю переместить панель вокруг формы.

Разбивка кода:

  • procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);: Это обработчик события OnMouseDown панели.
  • ReleaseCapture;: Освобождает любую захваченную мышь, которую может держать другой контроль или форма.
  • Panel1.Perform( WM_ SYSCOMMAND, SC_DRAGMOVE, 0 );: Имитация системного команды (WM_SYSCOMMAND) с флагом перемещения (SC_DRAGMOVE). Это начинает отслеживать движение мыши и позволяет пользователю переместить панель вокруг формы.

Обратите внимание, что этот код может быть применен не только к панелям, но и к любому другому визуальному компоненту на форме, например, кнопкам, меткам или даже самой форме.

Перемещение мышью панели на форме во время выполнения программы позволяет задвинуть ее подальше с помощью обработчика события OnMouseDown и использования метода Perform.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TPanel ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:18:09/0.0055458545684814/1