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

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

Завершение программы [D6, WinME, WinXP]


Andrew22 ©   (2002-07-24 07:39:00) 

Я уже задавал этот вопрос но так и не получил ответа.
Как убрать крестик с окна в верху?


Vlad1   (2002-07-24 14:04:00) [1]

Можно проще:
1. Пусть Button1 - это кнопка "Закрыть".
2.
procedure TForm1.Button1Click(Sender: TObject);

begin
Button1.Tag:=1;
.............

Close;
end;

procedure TForm1.CloseQuery(...);

begin
Canclose:=(Button1.Tag=1);
end;


Разумеется, на этапе разработки установи Button1.Tag=0


c0pYc@t   (2002-07-24 11:43:00) [2]

Или просто в OnClose пишешь Action := caNone; и усё фиг закроешь )))


feniks   (2002-07-24 11:27:00) [3]


protected
Procedure WMClos(var Message : TMessage); message WM_Close;
.
.
.

procedure TForm1.WMClos(var Message: TMessage);
begin
if MessageBox(0,"Kill ?","Attention",mb_YesNo) = idYes
then begin
//что - то завершаем (если надо) перед закрытием
inherited
end
end;


Andrew22   (2002-07-24 10:56:00) [4]

Все равно не понял.


Song   (2002-07-24 10:45:00) [5]

>>Напиши пример, плз.
А чего тут писать?
В обработчике проверяете координаты мыши (GetCursorPos) сравниваете их с кнопкой "Закрыть" (при желании можно рассчитать исходя из размеров окна - GetWidowRect(), и настроек системы - GetSystemMetrics() ) и соответсивенно возвращаете положительный или отрицательный CanClose.


Andrew22   (2002-07-24 10:40:00) [6]

Напиши пример, плз.


dimkh   (2002-07-24 10:35:00) [7]

Как вариант - обрабатывать OnCloseQuery, в котором разрешать закрытие формы только, например, если юзер нажал на кнопку "Закрыть".


Andrew22   (2002-07-24 10:22:00) [8]

Вот именно.


c0pYc@t   (2002-07-24 10:11:00) [9]

2 K Тогда проподет все меню со всеми кнопками


K   (2002-07-24 09:41:00) [10]

Нажимаешь плюсик рядом с BorderIcon в инспекторе объектов, biSystemMenu устанавливаешь в False.


Andrew22   (2002-07-24 09:03:00) [11]

Так BorderIcon отключает все значки, а мне надо чтобы остальные остались.


NailMan   (2002-07-24 08:34:00) [12]

В свойствах формы(тобишь в окне Obj. Inspector) выключаешь в BordersIcon все что тебе нужно.


Tornado   (2002-07-24 07:49:00) [13]

Могу предложить как сделать "крестик с окна в верху" неактивным. Думаю можно не убирать, этого будет достаточно. Удачи.

procedure TForm1.FormCreate(Sender: TObject);

var hMenuHandle:HMENU;

begin
hMenuHandle := GetSystemMenu(Handle, FALSE);
IF (hMenuHandle <> 0) THEN
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;


Наверх

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