![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сделать крестик нерабочим
Лёха © (2006-04-19 06:54:00)Приветствую всех мастеров и тех, кто ими когда-нибудь будет! Вопрос простой. Как сделать чтобы у формы крестик (маленькая кнопочка в верхнем правом углу, которая закрывает форму) был нерабочим (типа как Enabled = false у всяких кнопок и прочих элементов управления)
Юрий Зотов (2006-04-20 10:40:00) [1]> Лёха (20.04.06 04:19) [2]
А этот код делает нерабочим ТОЛЬКО крестик, не трогая системного меню - то есть, ТОЧНО соответствует вопросу:
type
TForm1 = class(TForm)
private
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
if Message.Result = HTCLOSE then
Message.Result := HTNOWHERE
end;
PS
Вы все же определитесь, нужно Вам закрытие через системное меню, или нет. А заодно и с закрытием через Alt+F4 - нужно оно, или нет.
Лёха (2006-04-20 06:53:00) [2]
> balepa © (20.04.06 06:15) [3]
Ратотает!!! Спасибо большое!!!
balepa (2006-04-20 06:15:00) [3]Dennn_is (14.06.02 13:10)
Следующий текст убирает команду закрыть из системного меню
и одновременно делает серой кнопку закрыть в заголовке
формы:
procedure TForm1.FormCreate(Sender: TObject);
var hMenuHandle:HMENU;
begin
hMenuHandle := GetSystemMenu(Handle, FALSE);
IF (hMenuHandle <> 0) THEN
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
Лёха (2006-04-20 04:19:00) [4]Только крестик. То есть нужно сделать аналог консоли MMC в Windows, или
Enterprise manager в SQL Servere.
Юрий Зотов (2006-04-19 08:32:00) [5]Уточните - нерабочим надо сделать только крестик, или надо сделать так, чтобы окно вообще нельзя было закрыть никакими способами?