gvg |
Отправлено: 23.08.2005, 12:06 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Как отобразить текст как у закрытого компонента, скажем как у TLabel с Enabled = false ? |
|
Guest |
Отправлено: 23.08.2005, 12:17 |
|
Не зарегистрирован
|
Color и Font->Color |
|
gvg |
Отправлено: 23.08.2005, 12:28 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Интересно, какими-же значениями? |
|
Guest |
Отправлено: 23.08.2005, 13:12 |
|
Не зарегистрирован
|
QUOTE |
Интересно, какими-же значениями?
|
Теми, которые "в цвет"
У меня, например, так:
CODE |
//---------------------------------------------------------------------------
// Навести красоту в редактируемых полях
//---------------------------------------------------------------------------
TColor WObjSetCanEditColor_IfEnabled = clWhite;
TColor WObjSetCanEditColor_IfDisabled = clSilver;
//- — - — - — - — - — - — - — - — - — - — - — - — - — - — - — - — - — - — - -
PACKAGE void __fastcall WObjSetCanEditColors (TColor ifenabled, TColor ifdisabled)
{
WObjSetCanEditColor_IfEnabled = ifenabled;
WObjSetCanEditColor_IfDisabled = ifdisabled;
}
//---------------------------------------------------------------------------
PACKAGE void __fastcall WObjSetCanEdit (TEdit *obj, bool isena)
{
if (!obj) return;
obj->ReadOnly = !isena;
obj->Color = obj->ReadOnly? WObjSetCanEditColor_IfDisabled : WObjSetCanEditColor_IfEnabled;
obj->TabStop = !obj->ReadOnly;
}
//---------------------------------------------------------------------------
PACKAGE void __fastcall WObjSetCanEdit (TMaskEdit *obj, bool isena)
{
if (!obj) return;
obj->ReadOnly = !isena;
obj->Color = obj->ReadOnly? WObjSetCanEditColor_IfDisabled : WObjSetCanEditColor_IfEnabled;
obj->TabStop = !obj->ReadOnly;
}
//---------------------------------------------------------------------------
и т.д...............
|
|
|
gvg |
Отправлено: 23.08.2005, 14:19 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Нее.. Это и ежу понятно. Как отобразить именно в том виде (3D). Была мысль вывести текст сначала clBtnShadow, затем со сдвигом в пиксел вверх и влево цветом clBtnHighlight. Но TextOut и TextRect затирают предыдущий вывод. Transparent-а у Canvas-а нет... Вот и подумал, может есть какая API функция... |
|
gvg |
Отправлено: 23.08.2005, 14:37 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Нашел!!! Может кому сгодится:
CODE | Fb->Canvas->Font->Color = clBtnHighlight;
Fb->Canvas->TextOut(Fw1 + 3, 2 + i * FRowHeight, GetItemValue(i));
SetBkMode( Fb->Canvas->Handle, TRANSPARENT );
Fb->Canvas->Font->Color = clBtnShadow;
Fb->Canvas->TextOut(Fw1 + 2, 1 + i * FRowHeight, GetItemValue(i));
SetBkMode( Fb->Canvas->Handle, OPAQUE ); |
Отредактировано Георгий — 23/08/2005, 22:14 |
|
Admin |
Отправлено: 23.08.2005, 21:04 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
А почему бы не происвоить компоненту это Enabled = false ?
|
|
gvg |
Отправлено: 24.08.2005, 07:59 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Потому-что о компоненте здесь говорилось только в качестве примера. Я спрашивал об отображении символов таким образом. Хотя мне это нужно действительно для своего компонента, текст нужно отображать на части PaintBox-а (см. ниже о компоненте типа ObjectInspector, я его таки доделал, теперь марафет навожу) |
|