Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> фиксированное положение окна формы, фиксированное положение окна формы 
:(
    Опции темы
vitaly74
Дата 25.10.2005, 09:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











нобходимо беспечить фиксированное положение окна формы при работе программы
  Вверх
z-END
Дата 25.10.2005, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



убири заголовок у окна и нарисуй свой, или перхватывай сообщения о пермещении формы


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Vet
Дата 25.10.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



В смысле, чтоб его нельзя было перетащить? Тогда можно попоробовать так:
Код

private
  procedure WMWindowPosChanging(var Msg: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;

...

const
 WindowLeft = 100;
 WindowTop = 100;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMWindowPosChanging(var Msg: TWMWindowPosChanging);
begin
 Msg.WindowPos.x := WindowLeft;
 Msg.WindowPos.y := WindowTop;
end;


PM MAIL   Вверх
MacTep
Дата 26.10.2005, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



А этот код защищает от такого перемещения: нажать Alt, вылезет менюшка окна, выбрать переместить и попробовать стрелками передвинуть???


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
RideX
Дата 26.10.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 94
Регистрация: 8.9.2004

Репутация: 4
Всего: 7



MacTep, можно сделать так, заголовок будет "мёртвый", никаких менюшек не будет вообще, окно закрывается по Alt+F4 или своей кнопкой на форме!
Код

  private
    { Private declarations }
    procedure FormNoMove(var Msg: TWMNCHitTest);message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormNoMove(var Msg: TWMNCHitTest);
begin
 if Msg.Result = HTCAPTION then
  Msg.Result := HTCLIENT;
end;


end.

PM   Вверх
Vet
Дата 26.10.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата(MacTep @ 26.10.2005, 11:42)
А этот код защищает от такого перемещения: нажать Alt, вылезет менюшка окна, выбрать переместить и попробовать стрелками передвинуть???

Форма-то перемещается, но потом она возвращается на место

RideX, да, заголовок действительно мертвый smile Хотя у меня пару раз получилось вызвать системное меню и клавишами переместить форму
PM MAIL   Вверх
RideX
Дата 27.10.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 94
Регистрация: 8.9.2004

Репутация: 4
Всего: 7



Цитата(Vet @ 26.10.2005, 23:18)
у меня пару раз получилось вызвать системное меню и клавишами переместить форму

Хм... А вот так тогда точно не получится, попробуй smile
Код

  private
    { Private declarations }
    procedure FormNoMove(var Msg: TWMNCHitTest);message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormNoMove(var Msg: TWMNCHitTest);
begin
 inherited;
 if Msg.Result = HTCAPTION then
  Msg.Result := HTCLIENT;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  hSysMenu: HMENU;
begin
  hSysMenu := GetSystemMenu(Handle, False);
  DeleteMenu(hSysMenu, SC_MOVE, MF_BYCOMMAND);
  DeleteMenu(hSysMenu, SC_SIZE, MF_BYCOMMAND);
  DeleteMenu(hSysMenu, SC_MINIMIZE, MF_BYCOMMAND);
  DeleteMenu(hSysMenu, SC_MAXIMIZE, MF_BYCOMMAND);
  EnableMenuItem(hSysMenu, SC_CLOSE, MF_BYCOMMAND + MF_GRAYED);
  DrawMenuBar(Handle);
end;

end.

PM   Вверх
Vet
Дата 27.10.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата(RideX @ 27.10.2005, 10:17)
А вот так тогда точно не получится, попробуй
Да я даже пробовать не буду. Сдается мне, если удалить пункты из меню, то выбрать их не получится smile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0962 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.