Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обратиться к 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.чтототам


Наверх

Титульная страница Поиск, карта сайта Написать письмо