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