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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 01:40   #1
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию Как провесить процедуру на OnShow динамически созданных вкладок PageControl'a

Есть PageControl, на котором динамически создаются вкладки. При переключении этих вкладок, нужно чтобы менялся размер PageControl'a.
1fixxer вне форума Ответить с цитированием
Старый 04.06.2014, 02:08   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от 1fixxer Посмотреть сообщение
Как провесить процедуру на OnShow динамически созданных вкладок PageControl'a
Так же как и на все прочие динамически созданные компоненты.
Жизнь и смерть в режиме run-time

P.S.
На всякий случай. Вкладка в PageControl'е это компонент TTabSheet.
northener вне форума Ответить с цитированием
Старый 04.06.2014, 02:14   #3
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию

В курсе. Спасибо за ссылку.
1fixxer вне форума Ответить с цитированием
Старый 04.06.2014, 02:21   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Тогда в чём проблема?
northener вне форума Ответить с цитированием
Старый 04.06.2014, 02:49   #5
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию

Создал TTabSheet:
Код:
tab:=ttabsheet.Create(pagecontrol3);
tab.PageControl:=pagecontrol3;
tab.Parent:=pagecontrol3;
tab.OnShow:=ResizeTab(self,year);
Написал процедуру:
Код:
procedure ResizeTab(Sender: TObject; y:integer);
begin 
TControl(sender).Width:=100+75*y;
end;
Получаю ошибку:
Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'.
1fixxer вне форума Ответить с цитированием
Старый 04.06.2014, 02:59   #6
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от 1fixxer Посмотреть сообщение
Написал процедуру:
Код:
procedure ResizeTab(Sender: TObject; y:integer);
begin 
TControl(sender).Width:=100+75*y;
end;
Получаю ошибку:
Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'.
Логично. Ты написал процедуру. А надо было написать метод класса (формы).
Кстати в статье по ссылке всё это сказано. Так что ты не в курсе.
northener вне форума Ответить с цитированием
Старый 04.06.2014, 03:10   #7
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию

Не ругайтесь, в курсе я был всего лишь про TTabSheet...так как правильно нужно написать?

Код:
procedure TForm1.ResizeTab(Sender: TObject; y:integer);
begin
TControl(sender).Width:=1000+y*75;
end;
Та же ошибка

Последний раз редактировалось Stilet; 04.06.2014 в 09:43.
1fixxer вне форума Ответить с цитированием
Старый 04.06.2014, 03:18   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от 1fixxer Посмотреть сообщение
Не ругайтесь, в курсе я был всего лишь про TTabSheet...так как правильно нужно написать?
Ну ты спросил в 4-м часу ночи.
Как "правильно", что бы Дельфи не ругалось я могу сказать. Меня только смущает параметр "y:integer" в твоей процедуре. Не могу понять его смысл.
northener вне форума Ответить с цитированием
Старый 04.06.2014, 03:25   #9
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию

В цикле на PageControl'е создаются вкладки, и при переключении на них нужно чтобы ширина PageControl'а менялась в зависимости от y (из цикла). Я наверно пытаюсь изменить ширину TTabSheet вместо PageControl'а в том коде, что я написал...исправьте, пожалуйста на правильный.
1fixxer вне форума Ответить с цитированием
Старый 04.06.2014, 15:24   #10
1fixxer
 
Регистрация: 17.03.2013
Сообщений: 6
По умолчанию

Разобрался.
1fixxer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу убрать обводку с вкладок PageControl bakanaev Общие вопросы Delphi 2 09.07.2013 08:51
перетаскивание динамически созданных объектов kaizer131 Общие вопросы Delphi 13 15.06.2011 07:59
Сохранение текста с вкладок PageControl OPF_Nik Общие вопросы Delphi 2 12.02.2010 12:35
Сохранение динамически созданных объектов Marsel737 Общие вопросы Delphi 25 15.12.2009 14:24
TreeView и PageControl (переключение вкладок по дереву) Nevy Общие вопросы C/C++ 5 17.08.2008 19:17