Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Как создать копию Form   Найти похожие ветки 

 
Black ©   (2004-09-07 12:45) [0]

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


 
TUser ©   (2004-09-07 12:47) [1]

Create, Assing, :=?


 
Black ©   (2004-09-07 12:51) [2]

А как потом менять св-ва?


 
Плохиш ©   (2004-09-07 12:53) [3]

Form.<свойство> := ...
Form.<елемент>.<свойство> := ...


 
Black ©   (2004-09-07 12:56) [4]

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

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


 
Reindeer Moss Eater ©   (2004-09-07 12:58) [5]

"Названия" создает сам программист, или обходится без них.


 
begin...end ©   (2004-09-07 12:58) [6]


> [4] Black ©   (07.09.04 12:56)

То есть? Переменная же есть?


 
Плохиш ©   (2004-09-07 12:59) [7]


> Black ©   (07.09.04 12:56) [4]

Form := TForm.Create...

"Form" есть название нужной тебе формы

PS. Может книжку какую почитаешь?


 
TUser ©   (2004-09-07 13:02) [8]

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;


 
begin...end ©   (2004-09-07 13:03) [9]


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

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

:-)


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


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

f[i] ;-)


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

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

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

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


 
begin...end ©   (2004-09-07 13:08) [12]


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

See [1] carefully.


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


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

см PS в [7]


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

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

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


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

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

см PS в [7]

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


 
Vlad ©   (2004-09-07 13:17) [16]


> 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


 
Vlad ©   (2004-09-07 13:19) [17]

ошибочка...


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

читать как

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


 
Black ©   (2004-09-07 13:38) [18]

Спасибо


 
TUser ©   (2004-09-07 13:57) [19]

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

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


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

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

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

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


 
TUser ©   (2004-09-07 14:42) [21]

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


 
KSergey ©   (2004-09-08 08:03) [22]

> Black ©   (07.09.04 12:45)

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


 
Black ©   (2004-09-08 10:53) [23]

Vlad ©   (07.09.04 13:17) [16]

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

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

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

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


 
Reindeer Moss Eater ©   (2004-09-08 10:56) [24]

type
TMyArray = array of TForm;


 
Black ©   (2004-09-08 11:06) [25]

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

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


 
Reindeer Moss Eater ©   (2004-09-08 11:19) [26]

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


 
Reindeer Moss Eater ©   (2004-09-08 11:20) [27]

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



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.073 c
9-1085028163
DanilinSA
2004-05-20 08:42
2004.09.26
Как минимизировать окно игрушки?


1-1094707455
user1
2004-09-09 09:24
2004.09.26
Процедура открытия модального окна


14-1094737906
blackman
2004-09-09 17:51
2004.09.26
КАК ПОМОЧЬ


14-1094813074
Hint
2004-09-10 14:44
2004.09.26
Проблема с компьютером


14-1093937222
Knight
2004-08-31 11:27
2004.09.26
Вопрос к знатокам Корл...