пятница, 25 октября 2013 г.

Таскаем форму без зацепа за заголовок


  Иной раз возникает необходимость убрать рамку у формы, при создании программной заставки например или для других целей. В таких случаях, свойство BorderStyle у формы устанавливается в bsNone, а это значит отсутствие рамки у формы, то есть отсутствие того за что ее можно перетаскивать мышкой. Как же быть, в таком случае - когда заголовок у формы отсутствует, а перетаскивать ее все-таки нужно?
Нас выручат следующие действия:

 1) Устанавливаем BorderStyle формы в bsNone;

 2) Создаем обработчик событий FormMouseMove на форме и прописываем следующий код:

begin
if ssleft in shift then begin ReleaseCapture; 
Form1.Perform(wm_syscommand, $f012,0); 
end;
end; 

 3) Запускаем наш проект и если вы все записали правильно, то форма без Border будет запросто перемещаться при помощи мыши.

3 комментария:

  1. Доброго времени суток! может не в тему, а случаем не подскажешь, делаю многооконное приложение, как передавать данные из формы в форму? Из компонент знаю как, а из переменной которая находится на другой форме получить значения не могу...

    ОтветитьУдалить
  2. может не в тему, а не подскажешь как данные из формы в форму передавать, из компонентов получается передача а из переменных нет.

    ОтветитьУдалить
  3. попробуйте разместить вашу переменную(объявленную естественно) в разделе public листинга public
    а:Extended;//Ваша переменная
    { Public declarations } и после этого к ней обращайтесь... должно сработать

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.