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

Формы - Lazarus

21.01.2015, 12:13. Просмотров 2321. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Формы (Lazarus):

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

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

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

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

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

VS 2008. Как можно обратиться из формы к control члену другой формы?
Я пытался так: Form1.cpp System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e) { Form2 ^f2; ...

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

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

Все надо делать так, как положено, а не так, как тебе вдруг захотелось...
0
Beetlejuice541
1 / 1 / 5
Регистрация: 21.01.2015
Сообщений: 235
21.01.2015, 12:42  [ТС] #9
делаю тест,нужно сделать,чтобы при нажатии на кнопку,программа закрывалась,вот и все.И возвращаться на главную форму...это как минимум странно,поэтому нужно чтобы программа закрывалась.
0
edukra
492 / 469 / 172
Регистрация: 24.01.2012
Сообщений: 1,139
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 / 5
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

Задать расположение формы в правом нижнем углу и запретить перемещение формы
Доброе время Подскажите пожалуйста, вот с этим: Необходимо задать расположение формы в правом нижнем углу и запретить перемещение...

Скрытие строк Таблицы формы через условное оформление управляемой формы
ранее было раскраска строк Таблицы по условному оформлению - все работало. решил поставить видимость = ложь, тчобы скрыть строку из...


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

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

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