Текущий архив: 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.5 MB
Время: 0.038 c