Карта сайта 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.


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


:: 2015-01-03 13:45:25 :: re:Перемещение мышью панели на форме во время выполнения программы

пользователь: Александр.

Визуальный компонент Shape не перетаскивается по форме


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 17:02:08/0.010650157928467/2