Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Панель, подобно Wizard'у или меню Installation, Возможность листать панели кнопками 
:(
    Опции темы
Гость_Николай
Дата 26.4.2005, 20:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте корифеи С++!
Помогите сделать панель, подобно Wizard'у или меню Installation, то есть, хотелось бы иметь возможность листать панели кнопками "Next", "Back". Как такое сделать?
  Вверх
sh_temp_el
Дата 26.4.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.4.2005

Репутация: нет
Всего: нет



Если в Билдере, то на ButtonClick динамически расставляешь компоненты ...

PM MAIL   Вверх
Гость_Николай
Дата 27.4.2005, 07:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Хотелось бы кода. smile
  Вверх
Vyacheslav
Дата 27.4.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Кладешь на форму с твоими двумя кнопками PageControl. Создаешь ему TabSfheet столько, сколько у тебя будет панелей. Раставляешь на них все что нужно и у каждой выставляешь свойствво ТabVisible в false
На кнопки навешиваешь обработчики
Код

void __fastcall TForm1::NextButtonClick(TObject *Sender)
{
    PageControl1->SelectNextPage(true, false);

}

void __fastcall TForm1::PrevButtonClick(TObject *Sender)
{
     PageControl1->SelectNextPage(false, false);
}





Можно навесить один обработчик на обе кнопки
Код


void __fastcall TForm1::ButtonClick(TObject *Sender)
{
    // здесь NextButton - кнопка для листания вперед 
    PageControl1->SelectNextPage(Sender == NextButton,  false);


}





--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Гость_Николай
Дата 28.4.2005, 12:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, попробую.
  Вверх
Гость_Николай
Дата 28.4.2005, 14:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Попробовал, только если поставить свойство ТabVisible в false, в программе не видно не только вкладки страниц, но и те компоненты, что я на них разместил. И еще, мне нужно листать страницы не по очереди, а например так: допустим на 1-й странице у меня 3 RadioButton, в зависимости от выбора одного из них, кликая на кнопке Next, открывается 2, 3 или 4-я страница. И так далее все листается в зависимости от выбора пользователя. Тогда может быть сделать так, поставить свойство ТabVisible в false и код:


Код

//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
TabSheet1->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NextButtonClick(TObject *Sender)
{
//здесь поставить условие, в зависимости, что отмечено в RadioButton
//и результаты ниже true или false
TabSheet1->Visible=false;
TabSheet2->Visible=true;
TabSheet3->Visible=false;
TabSheet4->Visible=false;  //  и т.д.
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PrevButtonClick(TObject *Sender)
{
TabSheet1->Visible=true;
TabSheet2->Visible=false;
TabSheet3->Visible=false;
TabSheet4->Visible=false; //  и т.д.
 }
//---------------------------------------------------------------------------


Только код громоздкий получается. И выходит надо кнопки Prev и Next на каждую TabSheet ставить. Или подскажи, пожалуйста, как лучше.
Заранее благодарю.
  Вверх
Vyacheslav
Дата 29.4.2005, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Тты сообшения чиатаешь? Пишешь о TabVisible , а в коде Visible. Я тебе говорю про свойство TabVisible у TabSheet, а ты устанавливаешь в false свойсто Visible. Естестенно TabSheet' перестают быть видимыми. TabVisible просто убирает закладки, которые в визарде не нужны.
Ну вообще визарды делают так , что страницы, открываются по порядку, но если тебе нужно
Код

PageContol1->ActivePageIndex = 0;// или любой другой индекс TabSheeft    


Между прочим, неужто так трудно в help заглянуть. Там это все прописано


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Гость_Николай
Дата 29.4.2005, 22:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемый Вячеслав. Как я уже писал, даже если выставить false не в Visible, а в TabVisible, все равно в программе не видно компонентов, которые на TabSheet. Не знаю, но у меня так получается. А код – это уже мои размышления. За советы спасибо, они мне очень помогли.



--------------------------------
С уважением, Николай
  Вверх
Бегемот
Дата 29.4.2005, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 1
Всего: 3



Цитата
Как я уже писал, даже если выставить false не в Visible, а в TabVisible, все равно в программе не видно компонентов, которые на TabSheet.

Николай, попробуйте вот так:
Код

int col_page = 5; //количество страниц PageControl'а
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 for(int i=0; i<col_page; i++)
  PageControl1->Pages[i]->TabVisible = false;
}


PM MAIL   Вверх
Гость_Николай
Дата 29.4.2005, 23:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Когда ставишь false в TabVisible автоматически ставится false и в Visible, поэтому потом нужно опять изменять Visible на true. Вот моё упущение!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.