![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Control.Enable := False Но, чтоб визуально не изменился. [D7, XP]
12 © (2011-01-13 09:15:00)Извините за тупой/странный вопрос.
Есть задача, все TEdit, TComboBox и т.п. делать недоступными, но: Чтоб цвет не менялся.
"..получено много нареканий на это. Очень неудобно читать.."
Как бы так сделать быстро и для всех контрлов?
с наскока не получилось докопаться
Быстро могу предложить
Control.Enable <=> Enable(Control)
а там что-то типа
procedure TForm1.Enable
Control.OnEnter := некий другой контрол . SetFocus;
т.е. просто не даем ему фокус и все
DiamondShark (2011-01-14 11:25:00) [1]
> Я бы добавил хинты к кнопкам, что бы не читать на кнопках,
> а надписи на кнопках заменил на пиктограммы.
Повбывал бы.
Дмитрий Белькевич (2011-01-14 10:29:00) [2]
> Есть задача, все TEdit, TComboBox
Сорри, не о том речь :)
Дмитрий Белькевич (2011-01-14 10:28:00) [3]
> Ты сам попробуй с таким извратом поработать, причем долго
> и насильственно.
Сама постановка задачи - изврат. А решение - [12] - то, что автору нужно. Я бы добавил хинты к кнопкам, что бы не читать на кнопках, а надписи на кнопках заменил на пиктограммы.
Игорь Шевченко (2011-01-13 21:23:00) [4]
> Положить на панель, панели сделать Enable := False
Ты сам попробуй с таким извратом поработать, причем долго и насильственно.
_Юрий (2011-01-13 20:15:00) [5]Положить на панель, панели сделать Enable := False
ну и конечно [10]
QAZ (2011-01-13 14:20:00) [6]Удалено модератором
DiamondShark (2011-01-13 11:44:00) [7]
> Есть задача, все TEdit, TComboBox и т.п. делать недоступными,
> но: Чтоб цвет не менялся.
Плохая идея.
1. Визуальный фидбэк о возможностях контролов должен быть.
2. Даже нередактируемые контролы должны быть доступны, если они содержат интересную информацию, которую можно использовать. Например, нередактируемый текстбох должен допускать возможность ткнуть в него, выделить текст и скопировать в клипборд
3. Для нередактируемых полей нет смысла использовать сложные контролы. Все нередактируемые поля можно (нужно) заменить на простой текст (с учётом п.2).
12 (2011-01-13 11:05:00) [8]
> WM_UPDATEUISTATE
> ...
> UISF_ACTIVE
http://msdn.microsoft.com/en-us/library/ms646361%28v=vs.85%29.aspx
все варианты попробовал
// edt1.Enabled := False;// так тоже, предварительно
SendMessage(edt1.Handle, WM_UPDATEUISTATE, XXXX, 0);
не получается
han_malign (2011-01-13 10:53:00) [9]WM_UPDATEUISTATE
...
UISF_ACTIVE
Windows XP: A control should be drawn in the style used for active controls.
12 (2011-01-13 10:42:00) [10]
> потом получиш много нареканий что ".. нажимаеш,а ничего
> не происходит..."
кстати, да..
но тогда просто переделать
procedure TForm1.Enable как
begin end;и все :)
QAZ (2011-01-13 10:32:00) [11]Удалено модератором
12 (2011-01-13 10:16:00) [12]
> убирай обработчик
запомнить, убрать, на закрытие вернуть?
в принципе, тоже самое
Control.Enable <=> Enable(Control)
потом если есть onEnter присвоить убрать фокус
иначе если есть onMouseDown (У меня там еще TLabel, с эффектом, как гиперссылка) присвоить убрать фокус
блин, нифига не вспомню потом зачем все это :)
Palladin (2011-01-13 09:42:00) [13]убирай обработчик
12 (2011-01-13 09:35:00) [14]
> ReadOnly := True; ?
не у всех есть
> положи все на форму и дизейбли ее.
они вперемешку, выборочно надо, от прав зависит
Ega23 (2011-01-13 09:24:00) [15]
ReadOnly := True;?
sniknik (2011-01-13 09:22:00) [16]положи все на форму и дизейбли ее.