Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.51 MB
Время: 0.039 c
14-1088680831
ricks
2004-07-01 15:20
2004.07.18
Помогите найти музыку


14-1088693650
VID
2004-07-01 18:54
2004.07.18
Возникла необходимость реализовать автообновление программы через


6-1084947901
johny
2004-05-19 10:25
2004.07.18
Парсер для работы с html страницами!


8-1083256185
GlavBOTan
2004-04-29 20:29
2004.07.18
Редактирование MP3 или wave


3-1088056780
SergBlack
2004-06-24 09:59
2004.07.18
Получение списка существующих таблиц в FireBird





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