Контролируем перемещение формы
Сегодня начну пост с того, что недавно пришлось восстановить блог с бэкапа не первой свежести. Связано это с тем, что хостинг прогорел, а я был в области и не успел сделать бэкап.
Пропали некоторые последние комментарии и один пост, про то, что блог теперь уже не 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), но они не всегда могут помочь.
давно еще писал на делфях, потом забил, работа)
почитал блог и прям вспомнил былое) добавил блог в закладки, вернусь за советом
спасибо за статью
а чего блог теперь не dofollow? спамят сильно?
Комментарии не от тех людей и не по той теме) Да, практически да.
Про хостинг знакомо, теперь бэкап делается каждый день
У мня тоже было тип того.Не успел с хостингом, а потом ковырялся долго.
У мня тоже было тип того.Не успел с хостингом, а потом ковырялся долго.
Про хостинг знакомо, теперь бэкап делается каждый день
Хорошая процедурка. Недавно столкнулся с ней) Жалко раньше на ваш блог не наткнулся.
Пока гром не грянет, мужик не перекреститься. Я теперь более ответсвенен при сохранение проектов. Жизнь учит.
Recuva это отличная прога для форматирования. Очень удобна.
Тут походу могу посоветовать: Дети не ходите в Африку гулять…. ой, не берите хостинг от компании freewha — завалили в мне в прошлом году один мой блог без предупреждения, отыскал базу не первой свежести, восстановил на другом хостинге, а архивов не хватает, так как всегда откладывал это дело и редко скачивал бэкапы. Представляете, сколько писал им про то, чтоб хотя бы доступ по ФТП открыли — тишина. А через месяц, когда все уже восстановил в ручную — приходит письмо «простите, что долго не отвечали, ваши файлы еще вам нужны?» Я их послал блин кокосы америкосы
Превое правило сисадмина бэкап и еще раз бэкап. Он лишним никогда не бывает. Проверено на опыте. Рекомендую воспользоваться советом и жизнь станет лучше =)
Автор, а вы когда за блог возьметесь?!
На моём хосте предлагается несколько дат для осуществления бэкапа. Очень удобная и полезная штуковина этот бэкап.
Мой хостер утверждает что сайт хранится на основном и на резервном серверах, так что беспокоится неочем, но все же раз в неделю я делаю бэкап — мало ли что.
Контроль возможен и для практически каждого обьекта, только для этого нужно иметь инструменты и справочную информацию по использованию классов и методов.
WM_WINDOWPOSCHANGED