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

Вниз

перечисление форм проекта   Найти похожие ветки 

 
Тимоха123   (2009-12-03 14:29) [0]

Всем привет, у меня созданно несколько форм, мне нужно перечислить их(пока не знаю как) и занести ссылки на формы в массив форм array of TForm
помогите с реализацией, как перечислить формы находящиеся в проекте пока не допру, причем основную форму перечислять не надо она - мэйн.


 
DVM ©   (2009-12-03 14:33) [1]

screen.Forms


 
Тимофей123   (2009-12-03 14:37) [2]

screen.Forms - текущее кол-во форм видимых на экране, мои формы скрейтины, но метод show я не вызывал


 
Сергей М. ©   (2009-12-03 14:43) [3]


> мои формы скрейтины


Обеспечь единого владельца всех "скриейтеных" тобой форм, например, глоб.объект Application. Тогда все они будут перечислены в списке Application.Components


 
Тимофей123   (2009-12-03 14:47) [4]

Спасибо, но я не понимаю как создать единого владельца:(


 
RWolf ©   (2009-12-03 14:47) [5]

Application.CreateForm(TMyForm,MyForm);


 
Сергей М. ©   (2009-12-03 15:01) [6]

либо
MyForm := TMyForm.Create(Application); // для любой формы, заведомо не претендующей на роль основной


 
Anatoly Podgoretsky ©   (2009-12-03 15:02) [7]

> Тимофей123  (03.12.2009 14:37:02)  [2]

Не только видимых, а всех созданых.


 
Тимофей123   (2009-12-05 18:10) [8]

помогите понять предложение:

Для каждой формы проекта поместить процедуру их создания в массив, используя процедурный тип данных, и вызывать на выполнение по требованию.


 
Тимофей123   (2009-12-05 18:12) [9]

т.е. я на этапе создания формы должен определять ее в массив используя процедурный тип данных?


 
Тимофей123   (2009-12-05 18:13) [10]

мне не понятно где это делать в коде project1 или в коде формы


 
Тимофей123   (2009-12-05 18:17) [11]

пока прицепил перечисление всех форм на кнопку:
var
 i: Integer;
 mas: array of TForm;
begin
 SetLength(mas, Screen.FormCount);
 for i := 0 to screen.FormCount - 1 do
 begin
   mas[i] := screen.Forms[i];
   listbox1.Items.Add(Screen.Forms[i].Name);
 end;


 
Anatoly Podgoretsky ©   (2009-12-05 18:26) [12]

> Тимофей123  (05.12.2009 18:17:11)  [11]

Зачем два массива?


 
Тимофей123   (2009-12-05 18:35) [13]

потому что задание: Для каждой формы проекта поместить процедуру их создания в массив, используя процедурный тип данных, и вызывать на выполнение по требованию.


 
Тимофей123   (2009-12-05 18:45) [14]

как я уже написал выше, мне не понятно как и где использовать процедурный тип данных в моей задаче


 
Тимофей123   (2009-12-05 22:10) [15]

Создать базовый класс форм, от которых наследовать все создаваемые формы проекта.

это значит
type
tmyform = class(tform)
end;
???


 
Игорь Шевченко ©   (2009-12-05 23:00) [16]

откуда задание-то ?


 
Тимофей123   (2009-12-05 23:03) [17]

преподаватель пояснил так:

1. Создать базовый класс форм, от которых наследовать все создаваемые формы проекта.
2. Предусмотреть возможность автоматической регистрации формы создаваемой в общем реестре форм.
3. Предусмотреть возможность получения списка всех созданных форм, обращения к ним по идентификатору, имени класса, имени формы.
4. Формы должны создаваться извне класса, внешним клиентом.

Создал отдельный юнит, в котором создаю свой класс:

type
 TMyForm = class(TForm)
 public
   mass: array of TForm;
   function AddForm: Integer;
 end;


функция  создания формы и добавления ее в массив форм:
function TMyForm.AddForm: Integer;
begin
 setlength(mass, length(mass) + 1);
 mass[length(mass) - 1] := TForm.Create(Application);
 result := length(mass) - 1;
end;


 
Тимофей123   (2009-12-05 23:04) [18]

из института)))


 
Игорь Шевченко ©   (2009-12-05 23:07) [19]


> из института)))


Ну так пусть преподаватель и поясняет, нам вроде не задавали, зачем здесь спрашиваешь ?


 
Тимофей123   (2009-12-05 23:11) [20]

легче всего послать нахрен...


 
Anatoly Podgoretsky ©   (2009-12-05 23:13) [21]


> преподаватель пояснил так:

Откуда, самовольно взялся массив.


 
Anatoly Podgoretsky ©   (2009-12-05 23:13) [22]


> легче всего послать нахрен...

Считай, что послали.


 
Тимофей123   (2009-12-05 23:22) [23]


> Считай, что послали.

смешной ты



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

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

Наверх




Память: 0.51 MB
Время: 0.011 c
4-1228475749
[RU].banOK
2008-12-05 14:15
2010.02.07
Пр0блемка с T00lHelp32


15-1259694967
Rouse_
2009-12-01 22:16
2010.02.07
Что-то давненько на знак кандидатов назначено небыло


2-1260531371
alex ford
2009-12-11 14:36
2010.02.07
закинуть в ресурсы файлы


2-1260534328
Alexxx
2009-12-11 15:25
2010.02.07
FontDialog


15-1259746350
Хитрий Лис
2009-12-02 12:32
2010.02.07
Какие у кого мысли о книжке Американское сало ?