Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое создание элементов на форме [D7, Win2k]


Страницы:   1 2

StarWolf ©   (2004-07-07 10:18:00) 

Уважаемые спецы! Помогите новечку. Появилась проблема. Я не уверен, что наилучшим образом решаю ее. Если есть другой лучшый способ, то буду рад любому предожению. И так.
На форме должно быть 42 панели GroupBox. И у них однотипная обработка данных. Т.к. обрабатывать каждую по имени займет кучу времени, решил создавать массив этих боксов. Но раньше я с подобным ни когда не сталкивался.
Объявляю в глобальных переменных
GDays: array [1..42] of TGroupBox;
Далее в FormCreate пишу
for i:=1 to 42 do GDays[i]:=TGroupBox.Create(MainForm);
for i:=1 to 42 do GDays[i]:=TGroupBox.Show;

В FormResize задаю размеры (Width, Height, Top, Left).
Но ни один бокс так и не появляется на форме. В чем дело? Что я делаю не так? Повторюсь: я сталкиваюсь с подобным созданием компонент впервые. И вынудило меня на это только однотипность их обработки (что можно организовать в цикле). Если вы знаете другой способ перебора компанентов на форме, то подскажите пожалуйста.


infom   (2004-07-07 11:01:00) [21]

А не вариант использовать таблицу ?


StarWolf   (2004-07-07 10:58:00) [22]

Дааа. Памяти уже только заготовка есть почти 3 мега.:( Но как еще сделать на форме ячейки с надписями нид ними? Лучшего способа я не придумал:( Конечно попробую что-нить придумать, но... Спасибо всем.


serg128   (2004-07-07 10:32:00) [23]

Я бы не советовал размещать 42 панели на одной форме. Во первых - это плохой стиль программирования, во вторых - форма будет сжирать много ресурсов памяти/процессорного времени. Советую пересмотреть идеологию.


HSolo   (2004-07-07 10:30:00) [24]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342


evvcom   (2004-07-07 10:30:00) [25]

точнее так:
GDays[i]:=TGroupBox.Create(Self);


evvcom   (2004-07-07 10:29:00) [26]

for i:=Low(GDays) to High(GDays) do begin
 GDays[i]:=TGroupBox.Create(MainForm);
 GDays[i].Parent:=Self; // надеюсь это в обработчике формы?
 GDays[i].SetBounds(ALeft, ATop, AWidth, AHeight); // параметры должны быть где-то рассчитаны
end;


StarWolf   (2004-07-07 10:25:00) [27]

Супер! Спасибо. Получилось.


Axis_of_Evil   (2004-07-07 10:22:00) [28]

Parent := MainForm, если не ошибаюсь


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо