Delphi как открыть вторую форму

Delphi как открыть вторую форму

Регистрируйтесь на форуме здесь, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку со спамом. Не забудьте пройти активацию по электронной почте и здесь вы сможете сбросить пароль

Купить рекламу на форуме 15-35 тысяч рублей в месяц

Форум программистов>Delphi Programming>Delphi General
Много форм в проекте. Как открыть одно от другого?
Регистрация

1. Никогда не работал с разными формами =) Да. народ )

Можно ли создавать формы в проекте =)

2. Можно ли создать окно Ok/Canel без создания другой формы? Например, для формы OK можно использовать showMessage

1. Я никогда не работал с несколькими формами =) Да. теперь такие люди)

Могу ли я создавать формы в проекте =)

2. Можно ли создать окно Ok/Canel, не создавая другую форму? Например, для формы OK вы можете использовать showMessage

1. Вы создаете форму. Вы создаете кнопку на form1 (и при использовании вы пишете Unit2 (т.е. формы)), при нажатии на кнопку вы пишете form2.show;

Нет. Все формы закрыты, кроме первой (в начале)
(да. Вообще говоря, у первой формы visible=true, у остальных visible=false)

Примечание: если вы вызываете форму 2 (не форму 1), вам нужно «прикрепить форму» следующим образом:

(и писать Unit2 (т.е. формы) в Uses)

Не говори так. ) Новички постоянно пишут не туда и возникает путаница.

У меня Delphi 7, я делаю так:

Допустим, вам нужно открыть Form1 из Form3: наберите слово Form3 (название формы) в любом контроллере Form1 и нажмите старт (F9).
Вместо запуска появляется окно с вопросом, соглашаемся, и Delphi сама добавляет все как надо.
Затем вы можете удалить это временное слово или добавить «.Show;».

Источник

BestProg

Создать новую форму и прикрепить ее к основной форме программы

Содержимое

Проблема Состояние

В приложении необходимо добавить новую форму Form2 к основной форме Form1.

На главной форме Form1:

  • создать кнопку «Показать форму — 2» для вызова новой формы;
  • Отобразить сообщение на форме1 о результате возврата из формы2.

В новой форме Form2:

  • создайте две кнопки с именами «ОК» и «Отмена» ;
  • запрограммировать реакцию формы на нажатие мышью (клавиатурой) соответствующей кнопки.
    Схема взаимодействия между формами показана на рисунке 1.

Гигант. 1. Схема взаимодействия с формами

Реализация

1. Запустите Embarcadero Delphi 2010. Создайте проект с помощью шаблона VCL Forms Application

Подробный пример создания нового проекта с помощью Шаблон приложения VCL Forms описан здесь .

Сохраните проект и основную форму с именем «MainForm» в какой-либо папке. Главной форме автоматически присваивается имя Form1 (свойство Name в инспекторе объектов).

2. Дизайн главной формы Form1

Переносим компоненты типа TLabel и TButton на главную форму. В результате имена компонентов будут Label1 и Button1.

Введите текст «Result =» в свойство «Title» компонента Label1. В свойстве «Заголовок» компонента Button1 введите текст «Показать форму 2».

Читайте также:  Как легче всего получить очки стим

Основная форма проекта показана на рисунке 2.

Рис. 2. Главная форма Form1

3. Добавление новой формы в проект

Добавление новой формы в проект осуществляется вызовом скрипта (рис. 3):

Рис. 3. Добавление новой формы в проект

В результате на экране появится новая пустая форма (Рис. 4). Вы можете получить доступ к свойствам и методам (процедурам и функциям) этой формы, используя имя по умолчанию Form2.

Рис. 4. Вновь созданная форма с именем Form2

В Инспекторе объектов имя формы отображается в свойстве Имя. Вы можете изменить, если хотите название формы.

Вы можете сохранить новую форму в файл с помощью команды

Каждая новая форма сохраняется в отдельный файл (модуль). По умолчанию Delphi предлагает имя Unit2.pas. Оставим все как есть.

В дополнение к модулю Unit2.pas автоматически создается файл с описанием формы Unit2.dfm.

Итак, в программе у нас есть две формы с одинаковыми именами (свойство «Имя»):

  • Form1 — основная форма (находится в модуле MainForm. pass );
  • Form2 — это дочерняя форма (находится в модуле Unit2.pas).
4. Настройка внешнего вида новой формы

Чтобы настроить правильный внешний вид новой формы ( Form2 ), выполните следующие действия.

  1. Размещаем на форме две кнопки (компонент типа TButton) и метку (TLabel). Получаем три переменные компонента с такими именами: Button1, Button2, Label1.
  2. Установите для свойства Caption компонента Button1 значение «OK».
  3. Установите для свойства Caption компонента Button2 значение «Отмена».
  4. Установите для свойства Caption компонента Label1 значение «Shape — 2».

Вы также можете установить другие свойства формы2, если хотите.

После внесения изменений и корректировки положения компонентов в форме Form2 новое окно формы будет выглядеть примерно так, как показано на рис. 5.

Рис. 5. Отображение дочерней формы после настройки

5. Подключение модуля из формы 2 в модуль формы 1

Чтобы получить результат формы 2 (форма 2) или получить доступ к методам или свойствам формы 2, вы должны прикрепить ее к основной форме.
Это делается с помощью директивы use в начале основного текста модуля формы в разделе реализации.

6. Вызов дочерней формы из родительской формы

Для вызова дочерней формы (Form2) мы программируем событие щелчка мышью на кнопке «Show Form 2».
Список кодов для этого события выглядит следующим образом.

Дочерняя форма вызывается напрямую с помощью функции ShowModal, которая возвращает одно из двух значений (см. пункт 7):

  • mrOk — означает, что «ОК на дочерней форме Form2 была нажата кнопка;
  • mrNo — означает, что на дочерней форме Form2 выбрано «Отмена».
7. Планирование событий в форме 2

Основная задача — определить, какую кнопку нажал пользователь на дочерней форме Form2. Это влияет на выполнение программы. Например, если нажата кнопка «ОК», это может означать, что выполняется какое-то действие (чтение из файла, печать и т. д.).

В нашем случае мы запрограммируем два события в форме модуля 2 ( Unit2.pas ):

  • нажмите кнопку OK (Button1) мышью;
  • нажмите кнопку «Отмена» (Кнопка 2) с помощью мыши.

Список программного кода для обработки этих событий выглядит так.

Внешний глобальная переменная ModalResult формы2 определяет поведение формы. Как только ModalResult примет ненулевое значение ( mrOk или mrNo ), форма закрывается с соответствующим кодом возврата.

В результате вызова функции

из родительской формы

дочерняя форма 2 будет отображаться на экране до тех пор, пока пользователь не закроет ее стандартными средствами Windows.

Читайте также:  Prime gaming как получить без карты

Если пользователь выбрал кнопку «ОК», то ShowModal (см. шаг 6) возвращает значение mrOk. В противном случае ShowModal возвращает mrNo.

Теперь вы можете запустить и протестировать программу.

Вывод

В этой статье мы изучаем функции подключения дочерней формы к родительской форме. Рассматриваемые вопросы включают следующее.

  1. Создать дочернюю форму (Файл -> Новая форма).
  2. Соедините дочернюю форму с родительской формой (используемой Unit2).
  3. Вызов (отображение) дочерней формы из родительской формы (ShowModal) и обработка возвращенного результата.
  4. Обработка событий подтверждения (неподтверждения) работы, выполненной в дочерней форме, с помощью глобальной переменной ModalResult.

Источник

Модуль Delphi

Delphi 7. Урок 2_5. Часть 1 .

С помощью модуля — с помощью модуля Delphi

Мы уже говорили, что кроме кода, написанного программистом, необходимо множество стандартных процедур и функций, чтобы сделать программа работает.

Например, преобразование целого числа в строку символов осуществляется с помощью функции «IntToStr()».

Код этой функции находится в модуле SysUtils, указанном в с помощью предложения .

блок Unit1;
интерфейс
использует

Windows, сообщения, SysUtils , варианты, классы, графику, элементы управления, формы, диалоги, меню, StdCtrl, кнопки, ExtCtrls;

В Delphi есть возможность отображать графическую информацию (изображения), представленную в формате «.bmp». Но наиболее распространенным форматом является «.jpeg или .jpg».

Если вы попытаетесь загрузить изображение в этом формате, компилятор выдаст ошибку.

К счастью, есть подключаемый модуль «JPEG», который решает проблему:

использует

Windows, Messages, SysUtils , Варианты, Классы, Графика, Элементы управления, Формы, Диалоги, Меню, StdCtrl, Кнопки, ExtCtrl, JPEG ;

Для отображения изображений «.png» необходимо загрузить модуль TPNGImage из Интернета и прикрепить его как модуль JPEG.

Интерфейс основной формы проекта.

После открытия Delphi IDE автоматически создаст форму с именем Form1 , которая будет основной формой программы (т. е. ее закрытие закрывает всю программу).

Разместим в нем все необходимые нам компоненты:

Во-первых, это главное меню » TmainMemu «. Далее идет панель, на которой мы разместим компонент Tmemo. Он будет содержать краткое описание референса разрабатываемой нами программы.

Кроме того, мы используем две кнопки «BitBtn». Воспользуемся свойством «Тип» этого компонента. Для кнопки, расположенной на панели, установите значение «bkOK». Для второго набора «bkClose». Такая кнопка будет автоматически закрывать форму при нажатии.

Сделаем панель «Panel1» невидимой при запуске программы. Для этого установите для свойства «Видимость» панели значение «false» в Инспекторе объектов.

Если пользователь хочет увидеть краткое описание программы, ему следует выбрать пункт меню «О программе».

Главное меню Delphi

Создание главного меню формы.

Вставить «Форма 1 » в главное меню (MainMenu).

Раньше мы управляли действиями программы, нажимая на кнопки, а теперь будем делать это, выбирая пункты меню.

Для создания пунктов меню необходимо вызвать редактор двойным щелчком мыши по компоненту MainMenu1 или выбрать пункт «Items…» в окне ObjeсtInspector.

В открывшемся окне нажмите на прямоугольник, и он станет синим:

В Инспекторе объектов заполните свойство «Заголовок» значением «Перейти» и нажать «ввод». Поле заполняется введенным значением.

Далее выделите прямоугольник, в котором он находится справа и введите значение «О программе» в поле «Заголовок» в инспекторе объектов.

Давайте пока остановимся на двух пунктах главного меню и начнем создавать подпункты . Ограничимся подразделом первого пункта. Для этого выберите «Перейти», а затем выберите прямоугольник внизу. Вводим значение «перейти к ->»

Переходим на вторую форму или в конец программы. Для этого создадим подменю (Submenu). Редактор подменю вызывается щелчком правой кнопкой мыши «перейти к ->». и выбрав команду «Создать подменю»:

Читайте также:  Как открыть багажник рендж ровер ногой

Появится пункт подменю:

Подпункты подменю заполнены аналогично пунктам меню, введя два значения: «во вторую форму» и «выйти из программы».

В итоге получаем:

Здесь мы ставим обработчики «кликов» для пунктов меню.

Обработчики пунктов меню.

Обработчики пунктов меню вызываются так же, как и для кнопки: двойным щелчком по элементу (если редактор пункта меню вдруг исчез, он вызывается снова двойным щелчком компонента MainMenu) .

Мы установим обработчики для пунктов подменю.

Для абзаца «ко второй форме»:

процедура TForm1.N3Click(Sender: TObject);

форма2. Показать ;

Обработчик второго пункта меню «выход из программы»:

procedure TForm1.N4Click(Sender: TObject);

закрыть ; //Процедура завершения программы.

Второй пункт главного меню «о»

процедура TForm1.N5Click(Sender: TObject);

селф.Панель1. Видимый := true ; //панель становится видимой.

Обработчик нажатия кнопки «ОК»:

процедура TForm1.BitBtn1Click(Sender: TObject);

селф.Панель1. Видимый := false ; // сделать панель снова невидимой.

Вам не нужно писать обработчик события для кнопки «Закрыть». Если выбран этот тип кнопки, она будет автоматически активирована, и программа закроется.

Создание вторых, третьих и так далее форм и модулей.

В предыдущей части мы создали главную форму программы. Однако реальные программы часто содержат две или более формы.

Давайте создадим вторую фигуру . Для этого выберите «Файл» из пункта главного меню IDE, затем в нем «Создать», а затем «Форма» из начального подменю.

Будет создана вторая форма с именем «Form2» и соответствующий модуль «Unit2».

Но модуль не обязательно должен быть связан с формой. Создадим отдельный модуль «Unit3». Для этого снова воспользуемся главным меню «Файл» > «новый» > «Ед. изм».

Связь между модулями.

Если вы пропишете программный код в созданных модулях, они никак не будут связаны друг с другом. Пока модули не могут видеть друг друга.

Обратите внимание, что главное меню, расположенное на «Форме1», содержит пункт «перейти ко второй форме» и для этого пункта создан обработчик кликов. Содержит команду: form2. Показать ; .

Но попытка компиляции выдает ошибку, потому что Unit1 не знает о существовании Unit2.

Чтобы разрешить эту коллизию, вам необходимо добавить ссылку в «Unit1» на «Unit2» следующим образом: used Unit2; . Это делается автоматически, если вы используете главное меню Delphi: «Файл» > «Единица использования…». В открывшемся диалоговом окне выберите модуль, который хотите подключить.

Таким же образом добавляется ссылка на модуль «Unit3».

Пункт будет добавлен в раздел «реализация», а не в основной пункт «Использование» в разделе «Интерфейс» по следующим причинам.

циклическая ссылка на единицу измерения delphi — перекрестные ссылки.

Возникла проблема с перекрестными ссылками модуля .

Предположим, что модуль 2 содержит данные, которые используются для выполнения процедур, расположенных в модуле 1.

Тогда в модуле 1 в предложении using должно быть указано на модуль 2. В принципе , это можно сделать в настройках, расположенных в разделе интерфейса.

Все будет хорошо, пока вам не потребуется получить доступ из модуля 2 к данным, расположенным в модуле 1. Если вы сошлетесь на модуль 1 в разделе интерфейса модуля 2, то из-за особенностей компилятора он выдаст Ошибка «перекрестная ссылка не разрешена».

Решение этой проблемы достаточно тривиально. В необходимо разместить ссылки на модули в разделе реализации, что происходит автоматически при использовании команды главного меню «Файл» > «Использовать единицу…».

Источник

Поделиться с друзьями
Решатор