Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание элементов на форме Найти похожие ветки
← →
StarWolf (2004-07-07 10:18) [0]Уважаемые спецы! Помогите новечку. Появилась проблема. Я не уверен, что наилучшим образом решаю ее. Если есть другой лучшый способ, то буду рад любому предожению. И так.
На форме должно быть 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).
Но ни один бокс так и не появляется на форме. В чем дело? Что я делаю не так? Повторюсь: я сталкиваюсь с подобным созданием компонент впервые. И вынудило меня на это только однотипность их обработки (что можно организовать в цикле). Если вы знаете другой способ перебора компанентов на форме, то подскажите пожалуйста.
← →
Axis_of_Evil © (2004-07-07 10:22) [1]Parent := MainForm, если не ошибаюсь
← →
StarWolf (2004-07-07 10:25) [2]Супер! Спасибо. Получилось.
← →
evvcom © (2004-07-07 10:29) [3]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;
← →
evvcom © (2004-07-07 10:30) [4]точнее так:
GDays[i]:=TGroupBox.Create(Self);
← →
HSolo © (2004-07-07 10:30) [5]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342
← →
serg128 (2004-07-07 10:32) [6]Я бы не советовал размещать 42 панели на одной форме. Во первых - это плохой стиль программирования, во вторых - форма будет сжирать много ресурсов памяти/процессорного времени. Советую пересмотреть идеологию.
← →
StarWolf (2004-07-07 10:58) [7]Дааа. Памяти уже только заготовка есть почти 3 мега.:( Но как еще сделать на форме ячейки с надписями нид ними? Лучшего способа я не придумал:( Конечно попробую что-нить придумать, но... Спасибо всем.
← →
infom © (2004-07-07 11:01) [8]А не вариант использовать таблицу ?
← →
StarWolf (2004-07-07 11:06) [9]Так, а о какой таблице идет речь? Разве есть такой компанент? Ни когда о нем не слышал.
← →
HSolo © (2004-07-07 11:11) [10]StringGrid ?
← →
StarWolf (2004-07-07 11:20) [11]Вроде в гриде же нельзя каждой ячайке задать заголовок.
А задача стоит именно в задании заголовка к каждой ячейке.
← →
evvcom © (2004-07-07 11:25) [12]Зато можно в одной ячейке заголовок, а в другой данные; в следующей опять заголовок, а в четвертой опять данные. См. http://www.delphikingdom.ru/asp/viewitem.asp?UrlItem=/helloworld/nogrid.htm
← →
infom © (2004-07-07 11:28) [13]
> Зато можно в одной ячейке заголовок, а в другой данные;
> в следующей опять заголовок, а в четвертой опять данные.
или использовать навороченные гриды :
GridView
EhGrid
dxTreeList
и т.д.
← →
StarWolf (2004-07-07 11:28) [14]Тоже верно. И на сколько я помню, можно даже задать у каждой ячкйки свой цвет? Можно ли? Если да, то это выход.
← →
infom © (2004-07-07 11:29) [15]а ещё вариант использовать Инспектор какой нидь
← →
infom © (2004-07-07 11:39) [16]Если хочешь задавать цвета ячеек, то по-моему лучший вариант это использовать GridView - отличный грид, очень много там можно настроить разного и полезного : цвета, разные типы колонок (checkbox в том числе) и т.д.
← →
StarWolf (2004-07-07 11:44) [17]Отлично. ТОлько теперь подскажите, где его взять?
← →
infom © (2004-07-07 12:01) [18]http://bib.com.ua/info.php?id1=1761
а вообще
http://yandex.ru/yandsearch?text=%F1%EA%E0%F7%E0%F2%FC+GridView+&stype=www
← →
evvcom © (2004-07-07 12:21) [19]Yandex тебе поможет!
Я в свое время смотрел EhGrid, он меня не устроил. Вероятно, и GridView, если он халявный, недалеко ушел от EhGrid. Поэтому гораздо полезнее будет почитать ту статью на королевстве.
← →
StarWolf (2004-07-07 12:41) [20]Хорошо. Спасибо. Щас покопаемся.
← →
KADAN © (2004-07-07 14:15) [21]Хм... а еще вариант просто рисовать на форму :)
← →
StarWolf (2004-07-07 14:32) [22]Ну если подскажите как рисовать линии, то это было бы идеальный вариант.
← →
infom © (2004-07-07 14:34) [23]with Form1.Canvas do
MoveTo
LineTo
← →
StarWolf (2004-07-07 14:44) [24]А можно ли где почитать на эту тему?
← →
Sandman25 © (2004-07-07 14:44) [25]TCanvas + F1
← →
KADAN © (2004-07-07 15:26) [26]тебе понадобятся только rectangle, MoveTo, LineTo, TextOut и, может быть, DrawFrameControl... ну еще brush.color и pen.color (с этим ты сможешь нарисовать то, что тебе надо).
← →
Anatoly Podgoretsky © (2004-07-07 15:29) [27]TBevel
← →
StarWolf (2004-07-07 15:49) [28]Спасибо. Разобрался.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.049 c