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

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

Как создать копию Form [D7, WinXP]


Страницы:   1 2

Black ©   (2004-09-07 12:45:00) 

Помогите, пожалуйста.
Мне в моей программе нужно создавать копии Form а потом менять их свойста (цвет и т.д.) и св-ва элементов на созданных формах.
Как мне это организовать. Может кто знает.


Reindeer Moss Eater   (2004-09-08 11:20:00) [1]

Кроме того это к теме ветки не относится.
Новый вопрос - новая тема.


Reindeer Moss Eater   (2004-09-08 11:19:00) [2]

написано во встроенной документации.


Black   (2004-09-08 11:06:00) [3]

Reindeer Moss Eater ©   (08.09.04 10:56) [24]
type
TMyArray = array of TForm;

А как потом изменять кол-во эллементов в этом массиве


Reindeer Moss Eater   (2004-09-08 10:56:00) [4]

type
TMyArray = array of TForm;


Black   (2004-09-08 10:53:00) [5]

Vlad ©   (07.09.04 13:17) [16]

.......................

Если количество экземпляров форм заранее неизвестно, то вместо переменных можешь использовать дин. массив of TSomeForm

Пытаюсь создать дин. массив of Tform1 но при компиляции он мне выдаёт, что типы Tform1 и дин. массив не совместимы.

Может подскажете как сделать массив элементов Tform!!


KSergey   (2004-09-08 08:03:00) [6]

> Black ©   (07.09.04 12:45)

http://www.delphikingdom.com/helloworld/runtime_comp.htm


TUser   (2004-09-07 14:42:00) [7]

Если пишешь это в методе класса TForm1 (напр., в Button1Click), то там определена переманная Self - указатель на самого себя. Таким образом Assign(Self) - это создание собственной копии.
Если это написать где-то еще, то Self м.б. указателем на экземпляр формы2, на что-угодно еще или вообще м.б. не определен. Там надо будет написать Form1 или иную переменную - указатель на копируемый экземпляр формы.


MANGOL   (2004-09-07 14:12:00) [8]

>TUser ©   (07.09.04 13:57) [19]

> Или Form1, если это не метод класса TForm1

А можно прояснить это высказывание? F.Assign(Form1), если методом класса TForm1 не является что? assign?
как-то сумбурно изложено :)


TUser   (2004-09-07 13:57:00) [9]

А можно описать по подробней как этим пользоваться!

Assign назчит св-ва одного объекта в соотвествии со св-вами др-го объекта того же класса (или его наследника).
Например, есть у тебя Form1. Ты можешь создать еще однй такую же форму
F:=TForm1.Create;
F.Assign(Self); // Или Form1, если это не метод класса TForm1


Black   (2004-09-07 13:38:00) [10]

Спасибо


Vlad   (2004-09-07 13:19:00) [11]

ошибочка...


> F1.Height := '100';
> F2.Width := '200';

читать как

F1.Height := 100;
F2.Width := 200;


Vlad   (2004-09-07 13:17:00) [12]


> Black ©   (07.09.04 13:09) [14]

Тебе судя по всему нужно просто создать несколько экземпляров одного класса (TSomeForm)

Вот и создай их:
var
F1, F2, ... FN: TSomeForm;
begin
F1:=TSomeForm.Create(...);
F2:=TSomeForm.Create(...);
...
FN:=TSomeForm.Create(...);

затем меняй наздоровье любые свойства, напр.:
F1.Height := '100';
F2.Width := '200';

Если количество экземпляров форм заранее неизвестно, то вместо переменных можешь использовать дин. массив of TSomeForm


Black   (2004-09-07 13:11:00) [13]

> Black ©   (07.09.04 13:05) [11]

см PS в [7]

Если найду хорошую книжку то обязательно почитаю


Black   (2004-09-07 13:09:00) [14]

TUser ©   (07.09.04 12:47) [1]
Create, Assing, :=?

А можно описать по подробней как этим пользоваться!


Плохиш   (2004-09-07 13:09:00) [15]


> Black ©   (07.09.04 13:05) [11]

см PS в [7]


begin...end   (2004-09-07 13:08:00) [16]


> [11] Black ©   (07.09.04 13:05)

See [1] carefully.


Black   (2004-09-07 13:05:00) [17]

Плохиш ©   (07.09.04 12:53) [3]
Form.<свойство> := ...
Form.<елемент>.<свойство> := ...

Это понятно. Но как мне узнать название нужной мне формы

Ведь мне сначало нужно программно создать копию Form1 и только потом изменить свойство созданной формы и элементов на ней?


Плохиш   (2004-09-07 13:04:00) [18]


> TUser ©   (07.09.04 13:02) [8]

f[i];-)


begin...end   (2004-09-07 13:03:00) [19]


> [8] TUser ©   (07.09.04 13:02)

- А зачем так много?
- Так ведь праздники же!

:-)


TUser   (2004-09-07 13:02:00) [20]

var f:array [0..125] of TYourForm
   i:integer;
begin
for i:=0 to 125 do begin
f:=TYourForm.Create(Application);
f.top:=i mod 25;
f.left:=i mod 25;
f.Panel1.Caption:='За создание этой формы положено '+inttostr(i+1)+' глотков пива';
end;
end;


Страницы:   1 2

Наверх

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