![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обратиться к Child форме если она создана в процессе работы прогр
DDDfs © (2012-02-02 12:33:00)Здравствуйте!
Есть две Child формы, которые создаются во время работы программы:
Var
Form1:TForm1;
Form2:TForm2;
Begin
Form1:=TForm1.Create(frmmain);
Form1.Name:=' Form1';
{}
Form2:=TForm2.Create(frmmain);
Form2.Name:=' Form2';
Затем в процессе работы программы мне необходимо обратиться к одной из форм, например к Grid-у и внести в него данные. В некоторых случаях помогает такое обращение:
Form1 (frmmain.ActiveMDIChild)…
Но теперь мне необходимо обратиться к форме 1 вне зависимости от того является она активной или нет. И, соответственно, ActiveMDIChild не подходит.
Поясните, пожалуйста, как можно обратиться?
Dimka Maslov (2012-02-02 20:32:00) [1]Я знаю? Город будет? Я знаю? Саду цвесть? Когда ТАКИЕ люди в стране советской есть?
DDDfs (2012-02-02 15:05:00) [2]Спасибо Герман!
То что я хотел!!
знайка (2012-02-02 14:55:00) [3]MainForm.MDIChildren[index]
Германн (2012-02-02 14:49:00) [4]
> Шестой пост - то что я хочу сделать!
Выбросить из Button1Click
Var
form2:Tform2;
DDDfs (2012-02-02 14:43:00) [5]Шестой пост - то что я хочу сделать! Может в 0 не совсем верно написал. Подскажите как обратиться в примере
Германн (2012-02-02 14:40:00) [6]
> DDDfs (02.02.12 14:37) [6]
>
> Привожу пример почему не работает.
Так зачем было дублировать объявление Form2?
DDDfs (2012-02-02 14:37:00) [7]Привожу пример почему не работает. Беру две формы: Form 1 – делаю formstyle – fsMDIForm, а другую Form2 - Child. Из UNit проекта убираю троку по созданию второй формы (хочу создать ее в процессе) и делаю ссылку с UNit2 а Unit 1. На главную форму ставлю две кнопки, а на дочернюю textbox называется edit1). В кнопках пишу следующий код:
procedure TForm1.Button1Click(Sender: TObject);
Var
form2:Tform2;
Begin
form2:=Tform2.Create(form1);
form2.Name:='form2';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Edit1.Text:='aaa';
end;
Когда нажимаю на кнопку 2 – возникает ошибка «Access Violation….”!
DDDfs (2012-02-02 14:37:00) [8]Привожу пример почему не работает. Беру две формы: Form 1 – делаю formstyle – fsMDIForm, а другую Form2 - Child. Из UNit проекта убираю cтроку по созданию второй формы (хочу создать ее в процессе) и делаю ссылку с UNit2 а Unit 1. На главную форму ставлю две кнопки, а на дочернюю textbox называется edit1). В кнопках пишу следующий код:
procedure TForm1.Button1Click(Sender: TObject);
Var
form2:Tform2;
Begin
form2:=Tform2.Create(form1);
form2.Name:='form2';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Edit1.Text:='aaa';
end;
Когда нажимаю на кнопку 2 – возникает ошибка «Access Violation….”!
Германн (2012-02-02 14:37:00) [9]
> DDDfs (02.02.12 13:57) [2]
>
> Так обратится нельзя так как форма создается в период работы
> программы
>
Если форма в процессе работы создается так как написано в [0], то так обратиться можно.
brother (2012-02-02 14:17:00) [10]Ну, сделай проверку на нил в начале вызова...
brother (2012-02-02 14:16:00) [11]Почему? Что мешает?
DDDfs (2012-02-02 13:57:00) [12]Так обратится нельзя так как форма создается в период работы программы
Германн (2012-02-02 12:50:00) [13]
> Но теперь мне необходимо обратиться к форме 1 вне зависимости
> от того является она активной или нет.
Form1.чтототам