Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кнопка закрытия формы [D5, WinXP]


Informer ©   (2008-03-25 17:58:00) 

Подскажите, пожалуйста, каким образом можно реализовать Enable и Disable для кнопки закрытия формы.
Спасибо.


Informer   (2008-03-25 21:53:00) [1]

> Leonid Troyanovsky ©   (25.03.08 21:45) [5]
Пока не осмыслил:(
Запостил в "Прочее" о другом:(
Совсем не связанно...


Leonid Troyanovsky   (2008-03-25 21:45:00) [2]


> Informer   (25.03.08 21:37) [4]

И SetWindowPos не пригодилась?

--
Regards, LVT.


Informer   (2008-03-25 21:37:00) [3]

> Leonid Troyanovsky ©   (25.03.08 21:33) [3]
> И зачем удалять, если можно EnableMenuItem
Посто не знал такого:(
Спасибо, если возникнут вопросы, обращусь.
Спасибо.


Leonid Troyanovsky   (2008-03-25 21:33:00) [4]


> Informer   (25.03.08 21:01) [2]

> Вопрос? Как ее визуально задисейблить, и второй вопрос:

Испытать
SetWindowPos( Form.Handle, 0, 0, 0, 0, 0,
  SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or
  SWP_DRAWFRAME or SWP_SHOWWINDOW )
И зачем удалять, если можно EnableMenuItem.

--
Regards, LVT.


Informer   (2008-03-25 21:01:00) [5]

Собственно, я делаю таким образом:
Запрещаю кнопку (но она визуально не дисейблится, хотя клики по ней (кнопке) не отрабатываются, что меня вполне устраивает (с некоторым запаздываем я наблюдаю "затененность" этой кнопки).
DeleteMenu(GetSystemMenu(Form1.Handle, false), SC_CLOSE, MF_BYCOMMAND);
Вопрос? Как ее визуально задисейблить, и второй вопрос:
Я ее формально раздисейблю (аналогичной командой, она правильно реагирует на клики мыши), но в этот момент смотрится как "затенення".


Elec3C   (2008-03-25 19:26:00) [6]

Можно так, простым удаление из меню приложения кнопки закрыть:

var hHan : HMENU;
begin
  hHan := GetSystemMenu(Handle, False);
 
  if hMenuHandle <> 0 then DeleteMenu(hHan, SC_CLOSE, MF_BYCOMMAND);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо