![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TKolTabControl - как отключить отдельные страницы
GMax © (2005-10-04 14:46:00)возникла проблема, при запуске вычислительного процесса в отдельном треде запретить пользователю переключаться на другие закладки в TabControl.
можно сделать Tab.Pages[x].Enable:=False,
однако заголовок "серым" не становится и возможность переключиться на страницу остаётся, что вводит в недоумение пользователей.
делать EnableChildren() не пойдёт, потому что на закладках контролы включаются\выключаются независимо друг от друга, а запоминать положение отдельных контролов - всё равно, что руками их выключать. да и заголовок таба всё равно не серый.
Tab.Pages[x].Visible:=False, чтобы вообще отключить показ страницы не срабатывает.
что ещё можно сделать ?
GMax (2005-10-04 22:48:00) [1]с сообщением получилось, спасибо.
а цвет заголовков выставить негде ? как это в VCL делается, тоже через ownerdraw ?
GMax (2005-10-04 22:19:00) [2]вот это моё исправление добавьте тоже, пожалуйста:
KOL.PAS
procedure TControl.SetDateTime(Value: TDateTime);
var ST: TSystemTime;
begin
DateTime2SystemTime( Value, ST );
Perform( DTM_SETSYSTEMTIME, Integer( IsNAN( Value ) ) , Integer( @ ST ) );
end;
первую строчку необходимо заменить на
if (Not IsNAN(Value)) then DateTime2SystemTime( Value, ST );
потому как если там NAN, то DateTime2SystemTime молча умирает на trunc()
Vladimir Kladov (2005-10-04 17:54:00) [3]Схема такая: OnMessage - перехватытвать WM_NOTIFY с сообщением TCN_SELCHANGING, возвращать 1 в Rslt, чтобы не переключал. А чтобы закладки посерели - через OwnerDraw только (толко в KOL я так еще не пробовал, мне кажется просто не разрешить уже хорошо). А вообще, можно TabControl заменить на что-нибудь. Да хотя бы на выбор страницы из комбо-списка.