Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 96
1

Сделать, чтобы при нажатии на форме 2 на кнопку, форма 2 закрывалась, а форма 1 открывалась

29.03.2015, 23:34. Показов 4313. Ответов 13
Метки нет (Все метки)

Здравствуйте подскажите как обнулить форму. Вобщем у меня форма form1 как бы с тестом там есть ComboBox при помощи которого выбирается тема теста так скажем, и на этой же форме Label куда записывается фопрос и варианты ответа на radiogroup. Когда тест заканчивается я перехожу на форму 2(form2) в которой прописываются результаты теста и прочие. Я хочу чтобы когда на форме (Form2) я нажимал клавишу(Button) 2 форма (form2) закрывалась ,а первая форма (form1) открывалась ну как бы заново. Подскажите как такое возможно сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 23:34
Ответы с готовыми решениями:

Как сделать чтобы при нажатии кнопку открывалась форма и автоматически начала играть музыка?
Как сделать чтобы при нажатии кнопку открывалась форма и автоматически начала играть музыка? Я...

Как сделать, чтоб при вводе пароль в edit и нажатии enter, форма закрывалась?
Как сделать чтоб при вводе пароль в edit и нажатии enter, форма закрывалась?

Как сделать так, чтобы, работая в программе, при нажатии на кнопку открывалась другая миниатюрная программа?
как сделать так чтобы работая в программе при нажатии на кнопку открывалась другая миниатюрная...

Разместить на форме кнопку, при каждом нажатии на которую, форма уменьшается в размерах
Разместить на форме кнопку, при каждом нажатии на которую пусть форма уменьшается в размерах и по...

13
Продавец времени
5022 / 2780 / 637
Регистрация: 12.03.2015
Сообщений: 13,498
30.03.2015, 00:36 2
Цитата Сообщение от qmax Посмотреть сообщение
Подскажите как такое возможно сделать.
Для начала настоятельно рекомендую прочитать, понять и законспектировать вот этот научный труд.

Навскидку, не глядя, посоветую поменять формы местами, а форму с тестированием создавать динамически и в модальном режиме.
1
4935 / 3842 / 1279
Регистрация: 14.04.2014
Сообщений: 17,732
Записей в блоге: 18
30.03.2015, 07:21 3
1)
в свойствах кнопки на форме 2 должно быть установлено свойство ModalResult
вызывать форму: form2.showModal;
форма 2 не закроется, пока не нажмешь кнопку
2)
"как бы заново" не бывает
бывает процедура, которая устанавливает значения свойств компонентов в те, которые ты считаешь должны быть "начальными"
label1.caption := '';
ComboBox1.ItemIndex:=-1;
и т.д.
назови эту процедуру, например, Init(); и вызывай когда хочешь
3)
тоже склоняюсь к мнению, что формы по смыслу должны поменяться местами
1
Продавец времени
5022 / 2780 / 637
Регистрация: 12.03.2015
Сообщений: 13,498
30.03.2015, 09:47 4
Цитата Сообщение от krapotkin Посмотреть сообщение
2)
"как бы заново" не бывает
бывает процедура, которая устанавливает значения свойств компонентов в те, которые ты считаешь должны быть "начальными"
label1.caption := '';
ComboBox1.ItemIndex:=-1;
и т.д.
назови эту процедуру, например, Init (); и вызывай когда хочешь
Да создавать каждый раз модальную форму заново и всё, а по закрытию убивать.
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 96
30.03.2015, 12:34  [ТС] 5


Добавлено через 7 минут
Спасибо всем!))))

Добавлено через 6 минут
Слушайте а вот еще вопрос, а как из ComboBox на form1 записать нужную строчку в label другой формы (form2)?
0
Продавец времени
5022 / 2780 / 637
Регистрация: 12.03.2015
Сообщений: 13,498
30.03.2015, 12:53 6
Цитата Сообщение от qmax Посмотреть сообщение
Слушайте а вот еще вопрос, а как из ComboBox на form1 записать нужную строчку в label другой формы (form2)?
it's a bad idea, but just write:
Delphi
1
2
3
4
5
uses unit2;
 
//.......
if assigned(form2) and (combobox.itemindex <> -1)
  then form2.Label99.caption:= combobox.items[combobox.itemindex];
0
Житель Земли
2838 / 2709 / 375
Регистрация: 26.07.2011
Сообщений: 10,771
Записей в блоге: 1
30.03.2015, 14:23 7
Цитата Сообщение от Verevkin Посмотреть сообщение
form2.Label99.caption:= combobox.items[combobox.itemindex];
чтобы не морочиться с ItemIndex
Delphi
1
form2.Label99.caption:= combobox.text;
0
пофигист широкого профиля
4305 / 2823 / 798
Регистрация: 15.07.2013
Сообщений: 16,360
30.03.2015, 14:44 8
Цитата Сообщение от DenNik Посмотреть сообщение
чтобы не морочиться с ItemIndex
Хочешь заменить ItemIndex на геморрой?
0
Житель Земли
2838 / 2709 / 375
Регистрация: 26.07.2011
Сообщений: 10,771
Записей в блоге: 1
30.03.2015, 14:45 9
Цитата Сообщение от northener Посмотреть сообщение
Хочешь заменить ItemIndex на геморрой?
почему это?
0
пофигист широкого профиля
4305 / 2823 / 798
Регистрация: 15.07.2013
Сообщений: 16,360
30.03.2015, 15:13 10
Потому что если у комбобокса стиль не csDropDownList, то свойство Text может не соответствовать ни одному из элементов списка.
0
Продавец времени
5022 / 2780 / 637
Регистрация: 12.03.2015
Сообщений: 13,498
30.03.2015, 15:15 11
Цитата Сообщение от northener Посмотреть сообщение
Потому что если у комбобокса стиль не csDropDownList, то свойство Text может не соответствовать ни одному из элементов списка.
согласенЪ.
0
Житель Земли
2838 / 2709 / 375
Регистрация: 26.07.2011
Сообщений: 10,771
Записей в блоге: 1
30.03.2015, 15:41 12
Цитата Сообщение от northener Посмотреть сообщение
то свойство Text может не соответствовать ни одному из элементов списка.
ну, во первых, при ручном вводе текста (именно вводе) ItemIndex меняется на -1. да, если задать так
Delphi
1
ComboBox.Text:= 'Hello'
перед этим выбрав элемент из выпадающего списка, то ItemIndex не поменяется, отсюда вытекает во-вторых, которое имеет более философский оттенок: выбрав один из элементов выпадающего списка, потом изменив текст путем прямого присвоения, и обратившись к ItemIndex, что можно ожидать в этом случае? насчет корректности и логической правильности я бы поспорил
0
пофигист широкого профиля
4305 / 2823 / 798
Регистрация: 15.07.2013
Сообщений: 16,360
31.03.2015, 02:00 13
DenNik, ты вроде всё правильно написал. Но вот именно из-за этого (в том числе) и падают наши ракеты.
Если именно нужно выбрать элемент из списка, то обязательно нужно использовать ItemIndex! Если из-за неправильных действий пользователя он станет равным -1, то мы получим исключение. А оно (правильно обработанное) подскажет пользователю, что он ошибся при вводе. Если же использовать TCombobox.Text, то программа слопает введенные данные даже ни пискнув. А ракета упадёт.

P.S. Вот почему меня в том числе просто бесит, когда на "учебном" форуме широко рекламируют использование функций Strto***Def! Это же явное вредительство!

Добавлено через 20 минут
P.P.S.
На всякий случай.
Для чего исторически предназначено свойство TCombobox.Text это особая статья.
0
Житель Земли
2838 / 2709 / 375
Регистрация: 26.07.2011
Сообщений: 10,771
Записей в блоге: 1
31.03.2015, 09:33 14
northener, ты тоже правильно пишешь. как я использую ComboBox? если мне нужно использовать его только как поле ввода текста, я ставлю стиль csDropDown. список здесь работает как вспомогательный для быстрого выбора предустановленного значения. в этом случае использовать ItemIndex мне кажется нецелесообразным. ведь каждый разработчик решает, как должна работать его программа. лично я презираю программы, в комбобоксе которых стоит стиль csDropDown, когда по логике он там нах не нужен
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2015, 09:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как сделать чтобы форма закрывалась, а не сворачивалась
Вот код: Form2.Show; Form3.Hide; когда делаю Form2.Show; Form3.Close; , то 2 форма просто...

Сделать, чтобы при нажатии на кнопку открывалась "вторая" программа
тема такая: вот у меня две программы написанные на делфи (будем называть их &quot;первая&quot; и...

что б при клике на кнопку открывалась новая форма
Привет нужна помощь! Нужно что б при клике на кнопку открывалась новая форма. И как сделать на...

Нужно сделать, чтобы при открытии главной формы открывалась еще одна (форма 2) сразу при появлении первой формы
я попробывал в евентс поставить онкреэйт форм 2 .шов ,программа запускается но появляется ошибка ,...


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

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

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