Это не так уж сложно, если вы понимаете объектную модель Delphi. Форма - это объект, который происходит от TObject и поддерживается файлом DFM, чтобы упростить настройку макета. Элементы управления на нем являются другими объектами, и по умолчанию они общедоступны для других объектов из других модулей, как и ваша другая форма. Есть два способа сделать это.
Самый простой способ - сделать так, чтобы код другой формы считывал значения из элементов управления непосредственно после завершения работы с первой формой. Просто используйте такие вещи, как MyString := Form2.EditBox.Text;
. Это не очень хороший стиль, но он работает.
Правильный способ сделать это - добавить в форму открытые свойства, которые будут извлекать значения элементов управления, или функцию, которая будет читать их и возвращать какой-либо объект или запись, содержащую все настройки. Это требует немного больше работы, но в результате получается более чистый код, который с меньшей вероятностью вызовет проблемы, если вы измените что-то в будущем.
РЕДАКТИРОВАТЬ: В ответ на вопрос в комментарии:
Чтобы сделать одну форму показанной и скрыть другую, вы вызываете Показать и скрыть ее. Или, если вы хотите, чтобы он отображался в модальном диалоговом окне, вызовите метод ShowModal, который позаботится о сокрытии, пока вы создаете кнопку, которая устанавливает ModalResult. (Подробнее о работе этих методов см. В справочном файле.)
Конечно, форма должна быть создана в первую очередь. Либо он может быть автоматически создан DPR, что хорошо для простых программ, но не так хорошо, когда вы получаете много форм в своем приложении, или вы можете создать его в коде. У Хенка есть пример того, как это сделать, хотя я бы не рекомендовал использовать ключевое слово с . И если вы создали форму самостоятельно, обязательно освободите ее после этого.