![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Завершение программы [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;