Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
ВнизЗавершение программы Найти похожие ветки
← →
Andrew22 (2002-07-24 07:39) [0]Я уже задавал этот вопрос но так и не получил ответа.
Как убрать крестик с окна в верху?
← →
Tornado (2002-07-24 07:49) [1]Могу предложить как сделать "крестик с окна в верху" неактивным. Думаю можно не убирать, этого будет достаточно. Удачи.
procedure TForm1.FormCreate(Sender: TObject);
var hMenuHandle:HMENU;
begin
hMenuHandle := GetSystemMenu(Handle, FALSE);
IF (hMenuHandle <> 0) THEN
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
← →
NailMan (2002-07-24 08:34) [2]В свойствах формы(тобишь в окне Obj. Inspector) выключаешь в BordersIcon все что тебе нужно.
← →
Andrew22 (2002-07-24 09:03) [3]Так BorderIcon отключает все значки, а мне надо чтобы остальные остались.
← →
K (2002-07-24 09:41) [4]Нажимаешь плюсик рядом с BorderIcon в инспекторе объектов, biSystemMenu устанавливаешь в False.
← →
c0pYc@t (2002-07-24 10:11) [5]2 K Тогда проподет все меню со всеми кнопками
← →
Andrew22 (2002-07-24 10:22) [6]Вот именно.
← →
dimkh (2002-07-24 10:35) [7]Как вариант - обрабатывать OnCloseQuery, в котором разрешать закрытие формы только, например, если юзер нажал на кнопку "Закрыть".
← →
Andrew22 (2002-07-24 10:40) [8]Напиши пример, плз.
← →
Song (2002-07-24 10:45) [9]>>Напиши пример, плз.
А чего тут писать?
В обработчике проверяете координаты мыши (GetCursorPos) сравниваете их с кнопкой "Закрыть" (при желании можно рассчитать исходя из размеров окна - GetWidowRect(), и настроек системы - GetSystemMetrics() ) и соответсивенно возвращаете положительный или отрицательный CanClose.
← →
Andrew22 (2002-07-24 10:56) [10]Все равно не понял.
← →
feniks (2002-07-24 11:27) [11]
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;
← →
c0pYc@t (2002-07-24 11:43) [12]Или просто в OnClose пишешь Action := caNone; и усё фиг закроешь )))
← →
Vlad1 (2002-07-24 14:04) [13]Можно проще:
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
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c