![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чем можно заменить свойство Enabled? [D6, XP]
Abcdef123 © (2007-08-20 05:01:00)Здравствуйте,Мастера.
У меня на форме панели и гроупбоксы,на них расположены элементы Tlabel, TDBEdit. И в одном из режимов задачи мне надо сделать компоненты одной панели и одного из гроупбоксов сделать недоступными (то есть только на чтение показать).Я делаю так для гроупбокса, и аналогично для панели
for i:= 0 to pred(GBX_01.ControlCount) do begin
GBX_01.Controls[i].Enabled:= False;
end;
И все нормально, но уж очень все бледно выглядит, начальству не нравится.
Я подумала, что если сделать доступными элементы, и просто ReadOnly=True, но в том случае курсор будет по полям DBEdit проходить, а мне этого не надо. Что можно сделать вместо этого? Можно ли вообще что-то придумать в таком случае?
Заранее спасибо!
Anatoly Podgoretsky (2007-08-21 09:38:00) [1]Те что только для просмотра или Enabled := False или ReadOnly := True
Первый метод предпочтительнее, поскольку пользователь сразу видит, что трогать не имеет смысла.
ASoft (2007-08-21 07:08:00) [2]
> Abcdef123 (21.08.07 05:16) [7]
определиться, наконец, что нужно будет для доступа, а что нет.. И раскидать по разным панелям (G-Box'ам):)
Abcdef123 (2007-08-21 05:16:00) [3]опять поспешила :-((
Теперь на этой панели все коспонетны доступны, а мне так не надо :-( То есть не сработало в случае, когда объявляем панель недоступной, а следом пишем, следать доступным один их элементов этой панели, то и вся панель уже доступна. Может еще что-то можно придумать?
Abcdef123 (2007-08-21 05:11:00) [4]Извините, поспешила и ошибку сделала в последнем ответе PNL_Top.Enabled := False;, надо True
В общем, сработало предложение "простого" Спасибо!
И спасибо всем за отклики!!!! :-)
Abcdef123 (2007-08-21 05:04:00) [5]Здесь в основном комментарии типа того, что дурью маюсь :-)
Поясняю. Эта форма доступна в 2х режимах - первый, когда для некоего пользователя доступны все компоненты на всех панелях и гроупбоксах для редактирования и введения информации. А во втором режиме некоторые панели (и компоненты) доступны для введения информации, а некоторые - только на простотр. То есть одна и та же запись таблицы, но не все поля доступны для редактирования. Поэтому вопрос-предложение Desdechado "Какой смысл видеть то, что недоступно?" не подходит, ну как это не показать значение ключевых полей? То есть, к примеру, на форме заказ наряд со всеми данными, номер заказ-наряда, перечень работ и прочее, и вот механику (грубо говоря) доступно высветить эту информацию а ввести поля только по отметке даты, или комментария, что он сделал.
Надеюсь понятно объяснила зачем? :-)
Совет человека с ником "простой" сработало частично, то есть сработало только там, где надо сделать недоступной все элементы панели! И теперь я так и сделаю.Но, вот на одной панели мне надо сделать доступным один элемент, а все остальные недоступны. И поэтому я писала так
for i:= 0 to pred(PNL_Top.ControlCount) do begin
PNL_Top.Controls[i].Enabled:= ((PNL_Top.Controls[i].Name = 'DBLC_Status') OR (PNL_Top.Controls[i].Name = 'LBL_Status'));
end;
А если как по совету написать
PNL_Top.Enabled := False;
DBLC_Status.Enabled := True;
LBL_Status.Enabled := True; - элементы не получаются доступными :-(
То
Anatoly Podgoretsky (2007-08-20 12:54:00) [6]
> И все нормально, но уж очень все бледно выглядит, начальству
> не нравится.
Хочешь запутать пользователей и от начальства дважды получить
1. что бледно
2. что путаешь пользователя
Игорь Шевченко (2007-08-20 11:01:00) [7]
> но в том случае курсор будет по полям DBEdit проходить,
> а мне этого не надо
TabStop = false
Desdechado (2007-08-20 10:40:00) [8]> но уж очень все бледно выглядит, начальству не нравится
Вообще-то это стандартное поведение для отключеннных компонентов Windows. Какой смысл видеть то, что недоступно?
Пункты меню ты тоже не хочешь серыми видеть?
простой (2007-08-20 08:57:00) [9]
> У меня на форме панели и гроупбоксы,на них расположены элементы
> Tlabel, TDBEdit
если все это на отдельной панели, то установи для этой панели Enabled в false и все будет Ок. Доступа к этим элементам не будет
> но уж очень все бледно выглядит, начальству не нравится
и начальству понравится.