Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чем можно заменить свойство 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 и все будет Ок. Доступа к этим элементам не будет
> но уж очень все бледно выглядит, начальству не нравится

и начальству понравится.


Наверх

Титульная страница Поиск, карта сайта Написать письмо