![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
Добрый день! Делаю MDI приложение. Form1 - MDI-главная форма программы. Form4 - дочерняя MDI-форма Form1. Form4 убрал из списка автосоздаваемых через Project-Options-Forms. На Form4 расположены 2 текстовых поля, в которые вводится логин и пароль для подключения к базе данных. Когда данные введены, то, нажимая на кнопку, должна вызваться функция подключения к базе, расположенная на Form1. Дочерняя MDI-Form4 прекрасно создается с помощью кода:
Код:
Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
![]() |
#2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Я думаю, что неправильный подход использован. Это видно по использованию локальной (!) переменной, объявленной в методе главной формы, в методе дочерней формы.
По идее, у Вас в модуле дочерней формы объявлено var Form4: TForm4; поэтому компилятор не говорит об ошибках (переменные разные, но Вы считаете , что они одинаковые), ведь формально всё верно, но в методе дочерней формы ссылка Form4 есть nil. Решение - убрать вообще из методов дочерней формы ссылку Form4 оставляя просто имена вызовов (т.е. заменить Form4.Free; на просто Free; ), ну и до кучи убрать её из var модуля. Более рационально пересмотреть логику в сторону фабрики дочерних форм, но это уже другая песня. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MDI (Delphi) | VadEr | Помощь студентам | 6 | 30.04.2011 18:12 |
MDI (Delphi) | ASPknopixx | Помощь студентам | 3 | 03.04.2011 16:54 |
Передача параметра с MDI родителя в MDI child через DLL | ByXalkin | Общие вопросы Delphi | 0 | 15.12.2009 17:21 |
Delphi. MDI | HoLToFF | Фриланс | 1 | 31.05.2009 07:40 |