Контролируем перемещение формы

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

Пропали некоторые последние комментарии и один пост, про то, что блог теперь уже не dofollow, но все комментарии, сделанные до того поста, остались dofollow.

Плюс хочу выразить благодарность пользователю Alex, который обратил внимание на мелочность и ненужность некоторых заметок. Исправимся :)

Вполне может оказаться необходимым контролировать перемещение формы пользователем — будь то некоторая стыковка к границам экрана или необходимость запретить перемещать форму.

Мы сперва лезем в Events, видим, что события OnMove нету.

Итак, существует два события: WM_MOVING и WM_MOVE. Первое передаётся окну, когда его перетаскивают, а второе, когда уже переместили. В принципе, в windows xp и выше (а может ещё и чуть раньше) при перемещении окна курсором оно сразу меняет позицию (в отличие от windows 95, например, там мы перемещали контур окна), WM_MOVE возникает достаточно много раз, поэтому не вижу особого смысла его использовать.

Для примера поставим Label1 на форму. Теперь в раздел private типа TForm1 напишем:

procedure WMMoving (var msg: TWMMoving); message WM_MOVING;

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

procedure TForm1.WMMoving (var msg: TWMMoving);
begin
  Label1.Caption:=IntToStr(msg.DragRect.Left)+';'+IntToStr(msg.DragRect.Top);
end;

Можно проверить, при перемещении формы в Label1 меняются её координаты.

Хочу добавить, что это заметка, которая не претендует на журнальную статью, но я решил об этом написать, так как передо мной встал вопрос, отражённый в заголовке. Буду и дальше писать конкретно и по теме блога :)

(с) crystalbit, http://parsers.info

Вопрос восстановления файлов — важный вопрос. Если бы всё было так просто, я не потерял бы бд блога, которая сгорела вместе с хостингом (к слову, похоже на то, что каталог с базами специально отформатировали). Программ есть много (та же Recuva), но они не всегда могут помочь.

17 ответов к «Контролируем перемещение формы»

  1. давно еще писал на делфях, потом забил, работа)
    почитал блог и прям вспомнил былое) добавил блог в закладки, вернусь за советом
    спасибо за статью

  2. Тут походу могу посоветовать: Дети не ходите в Африку гулять…. ой, не берите хостинг от компании freewha — завалили в мне в прошлом году один мой блог без предупреждения, отыскал базу не первой свежести, восстановил на другом хостинге, а архивов не хватает, так как всегда откладывал это дело и редко скачивал бэкапы. Представляете, сколько писал им про то, чтоб хотя бы доступ по ФТП открыли — тишина. А через месяц, когда все уже восстановил в ручную — приходит письмо «простите, что долго не отвечали, ваши файлы еще вам нужны?» Я их послал блин кокосы америкосы

  3. Превое правило сисадмина бэкап и еще раз бэкап. Он лишним никогда не бывает. Проверено на опыте. Рекомендую воспользоваться советом и жизнь станет лучше =)

  4. Мой хостер утверждает что сайт хранится на основном и на резервном серверах, так что беспокоится неочем, но все же раз в неделю я делаю бэкап — мало ли что.

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

Добавить комментарий для crystalbit Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *