Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
Тимоха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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
1-1237151847
demon
2009-03-16 00:17
2010.02.07
Как перехватить запуск нового приложения?


2-1260708366
JohnKorsh
2009-12-13 15:46
2010.02.07
Вопрос по беспроводным сетям.


3-1234341518
TTLr
2009-02-11 11:38
2010.02.07
Экспорт таблицы


2-1260432658
TAzimut
2009-12-10 11:10
2010.02.07
Как перехватить событие максимизации формы?


2-1260712096
serhiyiv
2009-12-13 16:48
2010.02.07
TStringList





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский