powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Закрытие формы
12 сообщений из 12, страница 1 из 1
Закрытие формы
    #39962121
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите как программно закрыть форму. При
Код: pascal
1.
Self.Close

выполняются события onCloseQuery и onClose, нужно чтобы форма просто закрывалась, без захода в эти события
...
Рейтинг: 0 / 0
Закрытие формы
    #39962131
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt,

зачем это нужно?
...
Рейтинг: 0 / 0
Закрытие формы
    #39962133
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon, там есть проверки которые срабатывают при закрытие, я делаю отдельную кнопку с закрытием, при нажатие которой не должно быть лишних вопросов
...
Рейтинг: 0 / 0
Закрытие формы
    #39962134
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то мешает в обработчике этой кнопки ставить какую-то пепеременную в true, а в OnClose проверять эту переменную?

Ну так, чтоб не чесать пяткой ухо.
...
Рейтинг: 0 / 0
Закрытие формы
    #39962150
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а
Код: pascal
1.
Self.Free

подойдет для моего случая?
...
Рейтинг: 0 / 0
Закрытие формы
    #39962164
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt,

Код: pascal
1.
2.
3.
4.
5.
6.
procedure TForm1.Button1Click(Sender: TObject);
begin
  OnCloseQuery := nil;
  OnClose := nil;
  Close;
end;
...
Рейтинг: 0 / 0
Закрытие формы
    #39962553
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt
Здравствуйте, подскажите как программно закрыть форму.

Self.Close

neteurt
я делаю отдельную кнопку с закрытием, при нажатие которой не должно быть лишних вопросов

Подумайте немного, что будет дальше. Завтра Вам понадобятся ещё две кнопки: одна, которая должна выполнить OnCloseQuery и не выполнять OnClose, и вторая, которая должна выполнить OnClose и не выполнять OnCloseQuery. Будете просить ещё два метода закрытия формы для этих случаев? А потом узнаете про OnDestroy и количество необходимых методов вырастет до восьми?

Теперь подумайте немного о сути событийно-ориентированного программирования. То, что Вы написали, можно описать так: при выполнении таких-то условий задать пользователю такой-то вопрос, иначе не задавать. Теперь требования изменились, и нужно, чтобы в одном из случаев, когда старая логика задаёт вопрос, он не задавался. Вопрос уже Вам: что для этого нужно изменить?

alekcvp

Решение, конечно, рабочее, но из тех, что стоит по возможности избегать. Советовать его не стоит, тем более автору такого уровня. Представьте себе, во что превратится его код, если он начнёт делать в подобной манере всё более и более сложную логику.

Автору: кстати, если у Вас будет желание в одном месте кода сделать Button.Enabled := false, в другом месте кода Button.Enabled := true, а в третьем ещё что-нибудь подобное - сразу знайте, что это лажа и стопроцентный путь к говнокоду. Лучше сразу спросите, как правильно.
...
Рейтинг: 0 / 0
Закрытие формы
    #39962615
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
neteurt
Здравствуйте, подскажите как программно закрыть форму.


alekcvp

Решение, конечно, рабочее, но из тех, что стоит по возможности избегать. Советовать его не стоит, тем более автору такого уровня. Представьте себе, во что превратится его код, если он начнёт делать в подобной манере всё более и более сложную логику.

Не соглашусь на 100%, что не стоит такое решение предлагать. Оно хоть и "решение Y", но абсолютно точно отвечает на вопрос ТС.
Тем более, что никто не приставил нож к горлу ТС и не потребовал ответить зачем такое ему нужно.
...
Рейтинг: 0 / 0
Закрытие формы
    #39962617
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener,

22139629

В общем - вполне нормальный путь, если знаешь, зачем это нужно.
...
Рейтинг: 0 / 0
Закрытие формы
    #39962621
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
neteurt
Здравствуйте, подскажите как программно закрыть форму.

Автору: кстати, если у Вас будет желание в одном месте кода сделать Button.Enabled := false, в другом месте кода Button.Enabled := true, а в третьем ещё что-нибудь подобное - сразу знайте, что это лажа и стопроцентный путь к говнокоду. Лучше сразу спросите, как правильно.

Ну а это утверждение я вообще не понимаю!
Такое поведение визуальных контролов более чем нормальное.
Например пока пользователь что-то не введет куда-то, кнопка должна быть недоступной для нажатия. Тем более что и пользователь это видит своими глазами.
Или вы что-то иное вспомнили?
...
Рейтинг: 0 / 0
Закрытие формы
    #39962623
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster
northener,

22139629

В общем - вполне нормальный путь, если знаешь, зачем это нужно.

Конечно.
...
Рейтинг: 0 / 0
Закрытие формы
    #39962707
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener
Ну а это утверждение я вообще не понимаю!

Подозреваю, имеется в виду что включаться/выключаться кнопка должна только в одном месте (процедуре), чтобы не приходилось потом по всем исходникам искать почему она выключена, если должна быть включена и т.п...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Закрытие формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]