Форум: "Потрепаться";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
ВнизWizard creation Найти похожие ветки
← →
corvinalive (2002-06-30 11:32) [0]Есть ли встроенная поддержка Wizard"ов в VCL
(напр. страницы TPageControl показываются по порядку)
← →
kaif (2002-06-30 14:16) [1]Есть великолепный бесплатный компонент KWizard для этого. Где скачать - не помню. Сам поищи. Супервещь.
← →
Юрий Зотов (2002-06-30 18:49) [2]Дык... а что, это очень сложно сделать самому? Кинуть на форму PageControl и две кнопки, а в обработчиках кнопок переключать TabVisible на предыдущую/следующую.
Пишется аж за целых пять минут, или даже еще быстрее. И получится великолепный бесплатный Wizard. А если оформить в виде фрейма, то получится великолепный бесплатный компонент.
Супервещь. И искать ничего не надо.
← →
kaif (2002-06-30 19:35) [3]Не совсем так. Я в свое время сам писал по той схеме, что Вы предлагаете, но оказалось, что проверка всех возможных состояний, присвоение Enabled/Disabled кнопке Next на каждой фазе - весьма запутывает и можно провозиться несколько часов, пока добьешься того, чтобы все это работало, как надо.(хотя пишется за 5 минут, но отлаживается долго). А класс TKWizard устроен так, что именно эти вещи там продуманы. Я не просто так советую. Посмотрите сами этот компонент и Вы убедитесь, что я прав. Хотя Вы по-своему правы, но лишь потому, что не видели компонент, о котором я говорю.
← →
Юрий Зотов (2002-06-30 21:41) [4]Я видел аналогичные компоненты (например, пакет Youseful). И видел их код, поэтому смело могу Вас уверить, что писали их отнюдь не новички. Исходя их этого, полагаю, что вряд ли TKWizard написан существенно лучше, чем его аналоги.
И все же я отказался от их использования - как раз по той причине, о которой Вы говорите. Ни один компонент не может лучше меня знать, какие особенности имеет моя конкретная задача, когда мне надо разрешить/запретить кнопку, "перепрыгнуть" через одну или несколько страниц вперед/назад и т.д. В лучшем случае он даст мне запрос в виде события, но код обработчика я все равно должен буду написать сам.
А в таком случае использование компонента теряет всякий смысл. Потому что тот же самый код можно спокойно написать в обработчике TAction.OnUpdate и/или Application.OnIdle. И все проблемы.
И если я хорошо представляю себе логику задачи, то делается это очень быстро, а отладки вообще практически не требует (что там отлаживать? несколько простейших if и/или case?).
А если я плохо представляю себе логику задачи, то никакой компонент меня не спасет. Потому что думать за меня он все равно не сможет.
← →
kaif (2002-07-01 00:13) [5]>2 Юрий Зотов © (30.06.02 21:41)
Совершенно согласен и подпишусь под любым Вашим доводом!
И все же позвольте я попрагандирую немного тот компонент, о котором идет речь. Представьте себе:
1. Выбираете компонет на палитре.
2. Щелкаете мышью на форме и она уже превратилась в Wizard. С помощью контекстного меню добавляете новые Pages.
3. Между страницами в Design time перемещаетесь с помощью кнопок Next, Previous, которые работают уже как кнопки Wizard-а.
4. Выбрав таким образом любую страницу, в Object Inspector устанавливаете свойства этой страницы (заголовок, подзаголовок картинка слева, если нужно, флаги видимости и enable-ости на данной странице всех навигационных кнопок - Previous, Next, Finish, Help, Cancel и их Cption-ы на этой странице). И на каждой странице можно назначить свои независимые обработчики событий для каждой кнопки.
Важно, что без всякого Help сразу понимаешь, как всем этим пользоваться.
-----------
Я очень редко прибегаю к использованию чужих компонентов, если без этого можно обойтись. Но этот компонент заслуживает того, чтобы на него взглянуть. К тому же он поставляется бесплатно с исходным кодом, который вовсе не так тривиален, как можно было бы подумать.
-----
С пакетом Youseful не работал. Сравнить не могу.
Извините меня за мою настырность. Но компонент слишком хорош, чтобы о нем ничего не знать. Кстати, я его получил в очередной рассылке с данного форума.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c