![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как показать две одинаковые формы? [D7]
Лумер © (2005-08-04 06:32:00)Есть Form2 в проекте. Я её могу показать чрезе Form2.Show . А если мне надо, чтобы можно было показать две одинаковые Form2, только с разными данными, то как это сделать?
TStas (2005-08-04 16:20:00) [1]forms:Array[1...сколько_надо] of TForm2; //Глобальный массив форм2
for i:=0 to сколько_надо do
begin
forms[i]:=TForm2.Create(mainForm); Создается массив экземпляров
forms[i].Tag:=i; //Это чтобы форма знала свой номер в массиве
end;
формы
forms[n].Show; //Показывается n-я форма при надобности
Полько лучше, если таких форм много не создавать все сразу, а по мере необходимости, а в onclose уничтожать их. Только надо
удрать ее из списка автоматически создаваемых форм
Лумер (2005-08-04 07:27:00) [2]Спасибо, попробую!
Alx2 (2005-08-04 07:15:00) [3]>Лумер (04.08.05 06:32)
Поверни вопрос так:
******
У меня есть переменная с именем "a", как мне завести еще одну переменную "а", но с другим значением?
******
Ведь несколько бредово получается?
Корректнее так:
**************
У меня есть переменная такого-то типа, как мне завести еще одну переменную того же типа, но с другим значением?
*************
У объекта Form2 наверняка есть тип (скорее всего TForm2 :) )
Если это так, то заводятся два объекта типа TForm2 (две переменных) и их свойствам задаются соответствующие значения. Потом эти объекты показываются. После использования убиваются.
FormA, FromB : TForm2;
FormA := TForm2.Create(<..>);
FormB := TForm2.Create(<..>);
........
FormA.Show;
FormB.Show;
ЮЮ (2005-08-04 06:59:00) [4]procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Form2.Caption := 'Ещё одна'ж
Form2.Show;
end;
Только понимать при этом, что ссылка на первый экземпляр формы утрачена, т.е. нигде в коде не должно присутствовать
Form2.<свойство>, кроме, естественно, приведенного кода, т.е. между Create и Show