![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проще всего сделать Wizard?
@!!ex © (2009-08-24 12:02:00)Нужно сделать Wizard - тоесть набор последовательных страничек в пределах одной формы.
Собственно вопрос в том, как удобнее всего управлять странички и на чем их размещать?
Если, например делать их на Panel и скрывать ненужные, то в работе все Ок. А вот в Design-Time - получаем кучу проблем в управлении и редактировании содержимого Panels...
MonoLife (2009-08-24 16:49:00) [1]Я как-то раз попробовал на фреймах, понравилось:))
Kolan (2009-08-24 16:04:00) [2]У меня есть компонет на TPageControl, хочешь покапаться?
TIF (2009-08-24 15:15:00) [3]> Вобщем, я не понял, о чём ветка вообще.
Про создание своих мастеров
> @!!ex © (24.08.09 12:02)
> Нужно сделать Wizard - тоесть набор последовательных страничек
> в пределах одной формы.
То есть наподобие этого:
http://pinpic.ru/img/1508/06fe89c3012d42721b19004252c2a5cf.jpg.html
Ega23 (2009-08-24 15:10:00) [4]Вобщем, я не понял, о чём ветка вообще. Я просто прицепился, что, дескать, нельзя вкладки у PageControl скрыть.
TIF (2009-08-24 14:41:00) [5]> PageControl? Да с какой радости? Зачем его на экран-то показывать.
> Показывать надо TabSheet.
Всё белое будет, включая TabSheet-ы. На скриншоте в [10] виден фрагмент
> В IDE надо. Т.к. рабочее пространство TabSheet увеличивается.
> Ручками убрать закладки и ObjectTreeView спокойно переключаешся
> между ними.
Вариант. Правда менее удобно при разработке и "вёрстке", но привыкнуть можно
Насчёт пространства верно, согласен, хотя это некритично (обычно так и так нужен отступ снизу, вот он и получится после выполнения того цикла по скрытию)
Andy BitOff (2009-08-24 14:33:00) [6]Не нужно ручками и даже противпоказано. В IDE надо. Т.к. рабочее пространство TabSheet увеличивается. Ручками убрать закладки и ObjectTreeView спокойно переключаешся между ними. ActivePage в этом случае ставится автоматом.
А по второму пункту даже и не понял кто там белый будет? PageControl? Да с какой радости? Зачем его на экран-то показывать. Показывать надо TabSheet.
TIF (2009-08-24 14:26:00) [7]> ActivePage Дядя Вася будет задавать?
О, как всё хитро устроено )
Надо было сразу предупреждать, я-то надеялся на сохранение активности текущей вкладки при скрытии, а надо ещё и вручную фокусировать
PageControl1.ActivePageIndex:=1;
ну или
PageControl1.ActivePage:=TabSheet2;
Правда всё равно остаются два минуса
1) Нужно ручками делать скрытие. Несмертельно, но мне лично психологически неприятно (ишь какой слабонервный...). С TNotebook таких ухищрений не требуется, остаётся только изменение ActivePage, то бишь одна строчка кода
2) PageControl поддерживает темы (manifest). С одной стороны, это даже не минус, а плюс:)
С другой, под Vista и Windows 7, например, он будет белого цвета, а надо другого... В TNotebook для этого достаточно изменить свойство Color
Ega23 (2009-08-24 14:12:00) [8]
> Все label-ы исчезли с глаз моих, остался только голый "папа"-
> PageControl
ActivePage Дядя Вася будет задавать?
TIF (2009-08-24 14:11:00) [9]> А ты попробуй ;)
Ну я и попробовал, а потом ответил :) Накидал label-ов на каждую вкладку и нажал button, который выполнил
for i := 0 to PageControl1.PageCount - 1 do
PageControl1.Pages[i].TabVisible := False;
Все label-ы исчезли с глаз моих, остался только голый "папа"-PageControl
Ega23 (2009-08-24 14:11:00) [10]
> Тут как раз будет скрытие самих вкладок-страниц, а не только
> "ярлычков". В результате выполнения этого кода все вкладки
> будут скрыты вместе с их содержимым
Да ну? И как же у меня ничего не скрывается-то, а?
И переключение через ActivePage работает.
Andy BitOff (2009-08-24 13:59:00) [11]
> TIF © (24.08.09 13:57) [10]
А ты попробуй ;)
TIF (2009-08-24 13:57:00) [12]> PageControl1.Pages[i].TabVisible := False;
:)))
Тут как раз будет скрытие самих вкладок-страниц, а не только "ярлычков". В результате выполнения этого кода все вкладки будут скрыты вместе с их содержимым
PS: "ярлычки"
http://pinpic.ru/img/1506/6aa675c874d7e385345b0cb6d87ed98a.jpg.html
Ega23 (2009-08-24 13:45:00) [13]
>
> То бишь эти, как их назвать-то... "Ярлычки" )
>
for i := 0 to PageControl1.PageCount - 1 do
PageControl1.Pages[i].TabVisible := False;
TIF (2009-08-24 13:28:00) [14]> вкладки
То бишь эти, как их назвать-то... "Ярлычки" )
TIF (2009-08-24 13:25:00) [15]> лучше смотри [9]
Чем лучше? У PageControl-а вкладки, а у "мастеров" вкладок не бывает (по крайней мере традиционных :)
sniknik (2009-08-24 12:44:00) [16]> см. мой PS к [7] и [8]
лучше смотри Andy BitOff © (19.08.09 16:06) [9]
@!!ex (2009-08-24 12:38:00) [17]Понял.
Ega23 (2009-08-24 12:22:00) [18]TFrame.Create(nil)
TFrame.Parent := Panel1 (Form1, что-там у тебя)
ну и т.д.
TIF (2009-08-24 12:22:00) [19]На днях упоминалось :) TNotebook
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1249555352&n=18
см. мой PS к [7] и [8]
@!!ex (2009-08-24 12:05:00) [20]> [1] Ega23 © (24.08.09 12:04)
Я тоже в их сторону подумал. Но не пользовался никогда.
Нагуглил статей, но там фреймы для других целей используються и я не понял как их в рантайме менять.