Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Запретить перемещение формы


Автор: neweraser 3.4.2008, 20:10
как можно запретить перемещение формы мышкой?
в DRKB есть пример, но он почему-то отказывается работать, выдает ошибку
[Error] Unit1.pas(524): E2010 Incompatible types: 'Integer' and 'THitTest'
вот сам пример:
Код

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;

ошибка на строчке
Код

Result := HTNOWHERE;


Автор: Alexeis 3.4.2008, 20:27
neweraser, смело приводи явным образом integer(HTNOWHERE). THitTest - это перечисляемый тип, так что без проблем.

Автор: neweraser 3.4.2008, 20:40
Компиллируется без ошибок, но не работает  smile 

Автор: Alexeis 3.4.2008, 20:46
Цитата(neweraser @  3.4.2008,  19:40 Найти цитируемый пост)
Компиллируется без ошибок, но не работает

  Боюсь что где-то конфликт имен переменных или типов. У меня не ругался и не перемещается как и положено. Пробовал и в Delphi7 и Delphi2007

Добавлено через 34 секунды
  Попробуй на пустом проекте.

Автор: neweraser 3.4.2008, 20:58
на пустом работает, скорее всего все из-за кода проекта
Код

.............................................
begin
  Application.Initialize;
  Application.Title := 'MainForm';
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TWaitForm, WaitForm);
  Application.CreateForm(TCreateFolderForm, CreateFolderForm);
  Application.CreateForm(TErrorForm, ErrorForm);
  Application.CreateForm(TOptionForm, OptionForm);
  Application.CreateForm(TOptionForm1, OptionForm1);
  Application.Run;
  CreateFolderForm.ShowModal; // думаю из-за этой вот строчки... может быть...
end.

Автор: Alexeis 3.4.2008, 22:13
Цитата(neweraser @  3.4.2008,  19:58 Найти цитируемый пост)
CreateFolderForm.ShowModal; // думаю из-за этой вот строчки... может быть...

  Врядли, она будет вызвана перед завершением работы программы. Где-то в другом месте...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)