Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как поменять Caption в TabSheet через FindComponents / 9 сообщений из 9, страница 1 из 1
15.10.2017, 18:08:37
    #39536531
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
привет

sclassname:=(FindComponent(dmmall.mdual.fieldbyname('langaction').AsString)).classname;

if sclassname='TBitBtn' then (FindComponent('NameButBtn') as TBitBtn).Caption:='блаблабла'; - этот и куча других компонентов работает без проблем

if sclassname='TTabSheet' then (FindComponent('NameTabSheet') as TTabsheet).Caption:='блаблабла'; - не работает
ошибка вот здесь (FindComponent('NameTabSheet') as TTabsheet).Caption как будтто нет компонента NameTabSheet. NameTabSheet - лежит на PageControl, создан статично в Delphi, не динамически в тексте

что за фигня? попытки привязать Form1. ... результата не дают

Спасибо
...
Рейтинг: 0 / 0
15.10.2017, 18:25:25
    #39536533
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
Есть TTabsheet с именем 'NameTabSheet' ?
...
Рейтинг: 0 / 0
15.10.2017, 18:28:06
    #39536535
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
'langaction' - это по каковски ?
'NameButBtn' - это вероятно BitBtn
...
Рейтинг: 0 / 0
15.10.2017, 18:32:18
    #39536537
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
DimaBr,

есть, он создан не программно, а в самом Delphi и я уже специально сделал текстовую переменную, где вытаскиваю типы
sclassname:=(FindComponent(dmmall.mdual.fieldbyname('langaction').AsString)).classname;
можно вытаскивать имена
были Ribbon-ы, потом я решил уйти от них, причины разные, поставил PageControl и тут началось, сначала не понял, потом давай смотреть

if sclassname='TTabSheet' then - для всех сделал, получаю ошибку именно по TabSheet

у меня мысли такие, что где то Parent теряется, но в отладчике все на месте

(FindComponent('NameTabSheet') as TTabsheet).Caption

NameTabSheet - есть
FindComponent('NameTabSheet') as TTabsheet - находит

как ставлю свойство, например Caption, так тут же ошибка
...
Рейтинг: 0 / 0
15.10.2017, 18:37:02
    #39536539
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
DimaBr,


sclassname:=(FindComponent(dmmall.mdual.fieldbyname('langaction').AsString)).classname;

это имена компонентов из базы, они правильно выводятся .

тут все просто, есть визуальные компоненты, в зависимости от выбранного языка и компонента, заполняется Caption нужного языка

вот как раз при появлении имени TabSheet появилась ошибка
...
Рейтинг: 0 / 0
15.10.2017, 18:38:59
    #39536540
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
при том фишка, если тупо засунуть все в try except, то тот же Caption присваивается везде, кроме TTabSheet
...
Рейтинг: 0 / 0
15.10.2017, 19:09:29
    #39536546
Freedoom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
yemets63, для поиска TabSheet - лежит на PageControl нужно использовать PageControl.FindComponent
А (FindComponent('NameTabSheet') as TTabsheet).Caption в проверках можно использовать если гарантированно нужный класс. В противном случае, сначала нужно проверить на соответстве типу с промощью IS
...
Рейтинг: 0 / 0
15.10.2017, 20:11:31
    #39536566
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
Всё работает

...
Рейтинг: 0 / 0
15.10.2017, 21:21:06
    #39536593
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как поменять Caption в TabSheet через FindComponents
нужно не забывать, что Owner у компонентов обычно сама форма а Parent - компонент, в котором выбранный компонент лежит
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как поменять Caption в TabSheet через FindComponents / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]