Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2010, 21:42   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Радость Как запретить перемещение формы?

Всем доброго времени суток.

Подскажите как запретить премещение формы, вот такой код не работаетна win7:

Код:
type 
  TyourForm = class(TForm) 
  private 
    { Private declarations } 
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST; 
  end; 

procedure TyourForm.WMNCHitTest(var Message: TWMNCHitTest); 
begin 
  inherited; 

  with Message do 
    if Result = HTCAPTION then 
      Result := HTNOWHERE; 
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 25.01.2010, 21:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Попробуйте без изысков:
Код:
(...) 

type 
    TyourForm = Class( TForm ) 
        Private 
            Procedure OnMove( Var Msg : TWMMove ); Message WM_MOVE; 
end; 

(...) 

procedure TyourForm.OnMove( Var Msg : TWMMove ); 
begin 
    Inherited; 
    (...) //тут верните форму на прежнее место (после проверки координат)
end;

Последний раз редактировалось mihali4; 25.01.2010 в 22:21.
mihali4 вне форума Ответить с цитированием
Старый 25.01.2010, 22:12   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Попробуйте без изысков:
Возникает сильное мелькание.


Marsel737, попробуй так :
Код:
private
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
......
......
......
implementation


 procedure TyourForm.WMSysCommand(var Msg: TWMSysCommand);
 begin
   if ((Msg.CmdType and $FFF0) = SC_MOVE) then
   begin
     Msg.Result := 0;
     Exit;
   end;
   inherited;
 end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.01.2010, 22:25   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Kotofff, идеально, спс огромное

mihali4, да. действительно мигает, но всё равно спс
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение формы Bigtyoma Общие вопросы Delphi 7 31.12.2009 23:47
Запретить изменение размеров формы larin1974 Общие вопросы Delphi 9 12.09.2009 20:27
Как запретить Изменение размера формы girz Общие вопросы Delphi 5 31.05.2009 10:29
как запретить раскрытие формы Анастасия123456789 Помощь студентам 3 21.04.2009 11:53
перемещение формы CraZZy RabbIt Общие вопросы Delphi 1 16.03.2009 01:38