Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2011, 20:59   #1
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
Вопрос Закрыть приложение через дочернюю форму

Здравствуйте.Имею две формы.Базовую сделал неактивной,дочерняя активная.Как при нажатии кнопки закрыть дочерней формы закрыть приложение?И еще вопрос:почему при установке фокуса на дочернюю форму в событии oncreate базовой,фокус остается на базовой форме
Человек Панда вне форума Ответить с цитированием
Старый 15.07.2011, 21:53   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Человек Панда Посмотреть сообщение
Как при нажатии кнопки закрыть дочерней формы закрыть приложение?
в событии FormClose дочерней формы написать Application.Terminate либо MainForm.Close

Насчет второго вопроса не совсем понял. Где и когда вы устанавливаете фокус на дочерней форме? Главная ведь первая создается ... или нет?
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 15.07.2011 в 21:55.
Jaguar83 вне форума Ответить с цитированием
Старый 15.07.2011, 22:41   #3
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

Главная создается первой.Вот фрагмент кода
procedure TMain.FormCreate(Sender: TObject);
begin
init:=Tregistration_.Create(self);
init.Visible:=True;
init.SetFocus;//вот в чем вопрос,дочерняя форма не получает фокус
end;
Человек Панда вне форума Ответить с цитированием
Старый 15.07.2011, 22:55   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

после создания OnCreate идет показ Onshow который вновь возвращает фокус.
1 вар. добавь главной форме данный обработчик обработчик и меняй фокус там.
пользователь легко сможет переключиться на главную форму не выполняя НИКАКИХ действий на дочерней.
2 вар использовать модальный вызов формы
доступ к главной форме возможен только ПОСЛЕ закрытия дочерней.
Код:
procedure TMain.FormCreate(Sender: TObject);
begin
init:=Tregistration_.Create(self);
//init.Visible:=True;
//init.SetFocus;//вот в чем вопрос,дочерняя форма не получает фокус
  init.showModal;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.07.2011, 23:08   #5
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

Пробую использовать первый вариант.Ничего не получилось,фокус остался на базовой форме

Код:
procedure TMain.FormShow(Sender: TObject);
begin
init.SetFocus
end;
Нужно,оказывается,использовать OnResize,он вызывается после остальных.В нем и меняю фокус.
OnCreate -> OnShow -> OnActivate-> OnPaint -> OnResize -> OnPaint ...
Спасибо всем за ответы.

Последний раз редактировалось Человек Панда; 15.07.2011 в 23:23. Причина: Ошибка выявлена
Человек Панда вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть своё приложение??? TwiX Общие вопросы Delphi 26 10.12.2019 02:20
Server2008(x64) не может закрыть моё приложение при завершении работы системы, но убивается через ДЗ Человек_Борща Общие вопросы Delphi 6 02.03.2011 17:20
Закрыть и открыть форму Swatch Microsoft Office Access 1 31.05.2010 23:04
Как закрыть приложение aiswork Софт 1 26.09.2009 12:58
Закрыть чужое приложение Михаил Юрьевич Общие вопросы Delphi 3 28.03.2009 21:26