Главная страница
    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.5 MB
Время: 0.006 c
15-1259705429
Германн
2009-12-02 01:10
2010.02.07
Или у меня глюки, или что-то изменилось.


4-1228473351
Nucer
2008-12-05 13:35
2010.02.07
Перехват WM_LBUTTONDOWN в конкретном приложении


15-1259647471
Serhio
2009-12-01 09:04
2010.02.07
Delphi. Проблемы с ведением лога в xls файле


11-1211311083
Vinum
2008-05-20 23:18
2010.02.07
Крутим колесико над PaintBox


2-1260482915
Aleks
2009-12-11 01:08
2010.02.07
динамически создаваемые объекты как их удалить?





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