Форум: "Прочее";
Текущий архив: 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