Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
1

Формы

21.01.2015, 12:13. Просмотров 2517. Ответов 12
Метки нет (Все метки)

Есть 2 формы.
Перехожу с одной на другую,методом
Код
form1.hide;
form2.show;
на 2 форме есть кнопка,которая должна закрыть программу
Код
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
close;
end;
и она закрывает,но программа продолжает работать,нужно в lazarus нажимать на красный квадратик "стоп",а если запустить exe файл,тог потом закрывать через диспетчер задач.Ка это исправить?Чтобы кнопка закрывала программу?
p.s. если закрывать программу нажав на крестик,как и все программы-то проблема та же
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2015, 12:13
Ответы с готовыми решениями:

Наследование формы от формы
Добрый день, подскажите плииз, возможно ли это и что это мне дает? Есть...

Чем являются компоненты, входящие в состав формы для класса этой формы?
То есть объявляется класс нашей формы: type TForm1 = class(TForm) Button1:...

Дочерние формы и выявление активной формы
Всем привет!!! У меня возникла следующая проблема, которую у меня решить не...

Центрировать кнопки при создании формы и при изменении размеров формы.
Спасайте) Центрировать кнопки при создании формы и при изменении размеров...

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

12
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26477 / 17781 / 7034
Регистрация: 22.10.2011
Сообщений: 31,295
Записей в блоге: 6
21.01.2015, 12:17 2
Ты первую форму (которая является по умолчанию главной формой приложения) скрыл, она продолжает работать, но уже невидимая. Потом ты закрываешь вторую форму. И что? Первая-то открыта. Почему тебе понадобилось по нажатию кнопки на неглавной форме закрывать все приложение?

Pascal
1
Application.Terminate;
, конечно, поможет, но это как-то не по человечески...
0
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
21.01.2015, 12:21  [ТС] 3
просто закрытие программы,я понимаю что у меня form1 открыта,как её закрыть,будут еще формы,кнопка должна закрывать все.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26477 / 17781 / 7034
Регистрация: 22.10.2011
Сообщений: 31,295
Записей в блоге: 6
21.01.2015, 12:26 4
Я написал, как...
0
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
21.01.2015, 12:27  [ТС] 5
почему не по человечески?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26477 / 17781 / 7034
Регистрация: 22.10.2011
Сообщений: 31,295
Записей в блоге: 6
21.01.2015, 12:31 6
Потому что при подобном способе закрытия приложения не сработает ни одни из обработчиков, назначенных, скажем, на OnClose или OnCloseQuery, и если ты намеревался при закрытии формы что-то проверять, и в случае чего нужно сохранить данные - они сохранены не будут...
0
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
21.01.2015, 12:36  [ТС] 7
не ужели все так сложно? Просто закрыть программу....Странно(
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26477 / 17781 / 7034
Регистрация: 22.10.2011
Сообщений: 31,295
Записей в блоге: 6
21.01.2015, 12:40 8
Просто закрыть программу - несложно. Но делать это надо не откуда-то, а именно с главной формы. Я тебя спрашивал выше, почему возникла необходимость закрывать программу из другого места? Ну вот представь, набрал ты программу в Лазарусе, потом зашел в настройки, тыкнул там кнопку, Лазарус взял и закрылся. Просто закрылся, не сохранив твой проект. Тебе это нравится? А если бы ты закрыл окно настроек, и попытался бы закрыть Лазарус крестиком - было бы все нормально, он бы предложил сохранить несохраненное, и только потом закрылся.

Все надо делать так, как положено, а не так, как тебе вдруг захотелось...
0
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
21.01.2015, 12:42  [ТС] 9
делаю тест,нужно сделать,чтобы при нажатии на кнопку,программа закрывалась,вот и все.И возвращаться на главную форму...это как минимум странно,поэтому нужно чтобы программа закрывалась.
0
edukra
526 / 491 / 188
Регистрация: 24.01.2012
Сообщений: 1,203
21.01.2015, 16:49 10
А такой вариант устроит?
Pascal
1
2
3
4
5
6
procedure TForm1.Button1Click(Sender: TObject);
begin
  hide;
  form2.ShowModal;
  close;
end;
Добавлено через 1 минуту
а во второй форме естественно
Pascal
1
2
3
4
procedure TForm2.Button1Click(Sender: TObject);
begin
  close;
end;
0
shyub
344 / 144 / 39
Регистрация: 11.07.2013
Сообщений: 791
25.01.2015, 11:30 11
Да сделайте просто во второй форме:

Delphi
1
2
3
4
5
6
7
8
implementation
uses Unit1;
................
................
procedure TForm2.Button4Click(Sender: TObject);
begin
  Form1.Close;
end;
0
Beetlejuice541
1 / 1 / 0
Регистрация: 21.01.2015
Сообщений: 235
25.01.2015, 16:07  [ТС] 12
а как сделать чтобы эта форма закрылась,а 2 открылась,но при этом можно было открыть эту форму потом.?
0
shyub
344 / 144 / 39
Регистрация: 11.07.2013
Сообщений: 791
26.01.2015, 10:45 13
Совсем закрыть первую форму, оставив только вторую, вряд ли удастся, т.к. она главная и при её закрытии закроется вся программа. Однако почему бы не скинуть её в панель задач.
Delphi
1
2
3
4
procedure TForm2.Button2Click(Sender: TObject);
begin
  Form1.WindowState:=wsMinimized;
end;
А в обработчике закрытия второй формы, чтобы при её закрытии открывалась первая, можете написа:
Delphi
1
Form1.WindowState:=wsNormal;
Сейчас не вспомню, но где-то встречал решение, как сделать, чтобы минимизированная форма не отображалась в панели задач. Поищите в сети.
0
26.01.2015, 10:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 10:45

VS 2008. Как можно обратиться из формы к control члену другой формы?
Я пытался так: Form1.cpp System::Void...

Как обращаться к компонентам формы в классе, не прописывая везде имя формы
Добрый вечер. Имеем одну форму (Class Form2), ну или две как у меня, было...

Открытие (окна) второй формы всегда по центру относительно первой (формы)
Форма №1 - основное окно программы (можно свободно перемещать по экрану). Форма...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru