Главная страница
    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.5 MB
Время: 0.037 c
14-1094729589
kand
2004-09-09 15:33
2004.09.26
Кто нить юзает MDaemon?


1-1094665202
AVKAR
2004-09-08 21:40
2004.09.26
TDateTimePicker


4-1092824281
AlexV
2004-08-18 14:18
2004.09.26
Как вывести список ссылок Favorites (Избранное) в ListBox ?


6-1089980485
alex_sc
2004-07-16 16:21
2004.09.26
работа с tfilestream и динамическим массивом


3-1093458927
3APA3A
2004-08-25 22:35
2004.09.26
Сохранение Columns в DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский