Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 14:09   #1
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию Как узнать индекс выделенной вкладки TabSet?

Здравствуйте. Как узнать индекс выделенной вкладки TabSet? Я кинул на форму Tabset и сделал 5 вкладок: 0,1,2,3,4. И кнопку с процедурой
Код:
procedure TfrMain.Button2Click(Sender: TObject);
begin
Label1.Caption:=inttostr(tabset1.TabIndex);
end;
Но в свойстве TabIndex очень редко оказывается индекс выделенной вкладки. Например, запустил программу, нажал на вкладку "3", нажал на кнопку, в Label отобразилось "3". Потом нажал на вкладку "2", нажал на кнопку, в Label почему-то "3" .
Сергей089 вне форума Ответить с цитированием
Старый 12.09.2010, 14:30   #2
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Что-то я не понял. Если через по шагу выполнять программу, то в TabIndex находится нужный индекс, и Label он записывается
Сергей089 вне форума Ответить с цитированием
Старый 12.09.2010, 16:05   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Можно сначала поискать нужный контрол, а потом:
Код:
Label1.Caption:=inttostr(tabset1.ActivePage.Controls[{тут номер контрола}]);
Если на вкладке только однин Лэйбл, то подставляете 0 без всякого поиска.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 12.09.2010, 18:03   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

TabIndex - это проперти, указывающее, в каком порядке переходить по контролам клавишей TAB
ActivePage - то, что Вам нужно.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 12.09.2010, 21:53   #5
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

ex.cluz и Johnson, что-то нет у TabSet такого свойства
Сергей089 вне форума Ответить с цитированием
Старый 12.09.2010, 22:03   #6
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Действительно, наблюдаются глюки с TabIndex.
Попробуйте так:

Код:
procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin
 Caption := IntToStr(NewTab);
end;
А вот этот код у меня работает
_Engine_ вне форума Ответить с цитированием
Старый 12.09.2010, 22:26   #7
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Хех, перепутал немного. Там не ТабСет ставить надо, а:
Код:
Label1.Caption:=inttostr(PageControl1.ActivePage.Controls[{тут номер контрола}].Caption);

Добавлено позже

Чет я вообще перепутал. Сейчас перечитал, что именно нужно и понял, что советовал не то, сорри.
Я-то думал, ТС надо с определенной вкладки кэпшн лэйбла считать
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 12.09.2010 в 22:44.
ex.cluz вне форума Ответить с цитированием
Старый 12.09.2010, 22:33   #8
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

_Engine_, у меня тоже пошло.
Сейчас заработало все. Оказывается, если у формы FormStyle стоит fsNormal, то все вышеперечисленные коды работают на ура, а если fsMDIForm, то работает только то, что предложил _Engine_. Может ли быть такое, что при FormStyle=fsMDIForm Label перерисовывается через раз?
Сергей089 вне форума Ответить с цитированием
Старый 12.09.2010, 22:36   #9
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Нет, это врядли
_Engine_ вне форума Ответить с цитированием
Старый 12.09.2010, 22:45   #10
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Ладно, это не важно. Главное, что свойства NewTab и TabIndex работают, оказывается, правильно, и теперь известен индекс выделенной вкладки . Спасибо всем!
Сергей089 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать текущий индекс в foreach boris-blade Общие вопросы .NET 4 25.03.2010 19:26
Как узнать индекс Листа valerij Microsoft Office Excel 1 25.02.2010 19:04
Delphi Как узнать индекс компонента Alex1991 Помощь студентам 7 23.02.2010 21:48
Контрол TAdvOfficeTabSet: как узнать индекс активной закладки? Ronaldo Общие вопросы Delphi 0 15.12.2009 21:58
Узнать индекс компонента в событие larin1974 Общие вопросы Delphi 5 13.12.2009 13:59