Показать сообщение отдельно
  #1  
Старый 19.01.2010, 12:25
SlavikSG SlavikSG вне форума
Прохожий
 
Регистрация: 26.02.2009
Адрес: Новомосковск
Сообщения: 7
Репутация: 10
По умолчанию Передача параметра в динамически создаваемую форму

Если в опциях проекта поместить форму в Auto-create-Form, то она будет создаваться сразу после старта программы. Если в форме в свойствах Visible присвоить Hide, то форма видна не будет. По мере надобности, форму можно делать то видимой, то невидимой. И тут все просто. В такую форму параметры из другой формы передаются самым замечательным образом через точечную нотацию. Например: Form2.Edit1.Text := 'asfgafg';

И все тут же перестает работать, если у меня дочерняя форма создается динамически в пункте меню MDI-формы (главной формы) таким образом:

Код:
PROCEDURE TForm1.N2Click(Sender: TObject);
VAR Child: TForm2;
BEGIN
Child := TForm2.Create(Application);
Child.Top := 6;
Child.Left := 300;
END;

Начиная с этого момента команда Form2.Edit1.Text := 'asfgafg'; работать перестает. На стадии компиляции компилятор никакой ошибки не выдает, а при исполнении этой команды вживую, программа выдает ошибку:
"Acces violation at address 004B42CF in module 'Forma1.exe'. Read of address 00000380."

Никак не могу понять, как передать значение в форму, создаваемую таким образом. И мне нужно именно ТАК создавать форму, так-как значение Hide "дочерней форме" присвоить нельзя. Ну, или, быть может, еще каким-то другим способом делать видимой или невидимой дочернюю форму, про который я не знаю.

В разделе Uses все модули прописаны. Как я уже говорил, компилятор не ругается. Тут у меня все Ок.

Прошу прощения, если вопрос глупый. Я совсем еще новичок в Дельфи.
Ответить с цитированием