хм, а с чего ты взял, что сможешь привязать контрол к вкладке? давай-ка попробуем разобраться что есть табконтрол с точки зрения винды. по сути это окошко с картинкой на нем (закладки это всего лишь картинка). это одно окно, которому посылая сообщение ты можешь получить в ответ какая из закладок в данный момент нарисована активной (ну и куча других специфических сообщений для данного класса). поэтому свои контролы не надо привязывать к табконтролу.$t@t!c_V()1D писал(а):А реализация-то долгая будет %). Загвоздка в том, что ограничение преодолевается лишь частично - nsDialogs конечно создает всё, что душе угодно, но так называемый "Parented control" не создает. То есть, если я создаю контрол, то я не могу привязать его ко вкладке, а только к главной форме.
Отсюда следует, что
1. Можно нахимичить со стилем контрола и всунуть ему Вкладку в качестве родителя. Но, как показывает практика, у меня это плохо...ужасно плохо получается (или у WinAPI это плохо получается - уж не знаю кто здесь более виноват. Может это вообще не очень-то и осуществимо). Но если это как-нибудь осуществимо (South, подскажи мне %) ), то я буду склоняться за этот принцип.
далее, с точки зрения делфи, чтобы больше вопросов не было. там есть 2 компонента tabcontrol и pagecontrol.
tabcontrol - обертка винапишного. только все сообщения реализованы в виде методов и свойств. более там никаких новшеств вроде бы нет.
pagecontrol - тоже обертка systabcontrol32. сами страницы реализованы в виде отдельных окон, которые скрываются/показываются (или уничтожаются/создаются точно не знаю) в зависимости от выбранной закладки. и родитель у них соответственно не tabcontrol, а tabcontrol.parent. именно на эти окна ты и помещаешь свои компоненты. соответственно они показываются/скрываются с окнами (страницами) pagecontrol'а. вобщем никаких премудростей
собственно в своем примере я тебе предложил упрощенную реализацию pagecontrola. в качестве страниц были использованы TPanel с помещенными на них компонентами. и скрывались/показывались именно эти панельки (а вместе с ними и эдиты, чекбоксы, батоны). NSIS я конечно не знаю, но думаю, что аналог TPanel там должен быть и тебе никто не мешает поместить на такие панели свои компоненты и соответственно показывать нужную. если в NSIS работа построена на диалогах, то в качестве страниц pagecontrol'а можно использовать отдельные диалоговые окна и также как с панельками показывать/скрывать их.
ЗЫ реализацию tabcontrol и pagecontrol в делфи на самом деле не смотрел, но думаю, что не далек от истины :)
ЗЗЫ лектор из меня хреновый, но надеюсь ты понял, что я тут понаписал
Добавлено спустя 36 минут 22 секунды:
ну и скрин для наглядности
обрати внимание, что SysTabControl32 - отдельное окно, а закладки - отдельные диалоги