14.12.2011, 06:50 | #1 |
Участник
|
Ax2009 RU7 как измененить цвет колонок в гриде?
Есть функционал который должен изменять цвет колонок.
X++: void redrawPayTblDayHourTrans() { FormIntControl control; RPayCalendarDate payCalendarDate; ; while select TransDate,PayDayType from payCalendarDate index hint CalendarDateIdx where payCalendarDate.CalendarId == payTblTrans.PayCalendarId && payCalendarDate.TransDate >= dateStartMth(payTblTrans.SourceDate) && payCalendarDate.TransDate <= endmth(payTblTrans.SourceDate) { control = element.design().controlName('PayTblDayHourTrans_Day'+int2str(dayofmth(payCalendarDate.TransDate))); control.allowEdit(true); if(payCalendarDate.PayDayType == RPayDayType::Holiday) control.backgroundColor(WindowsPalette::InactiveBorder); else control.backgroundColor(WindowsPalette::WindowBackground); } element.redraw(); } Может это проблема винды 7. |
|
14.12.2011, 09:19 | #2 |
Axapta Retail User
|
Попробуйте, например, так:
X++: ... if(payCalendarDate.PayDayType == RPayDayType::Holiday) { //изменить цвет колонки control.colorScheme(FormColorScheme::RGB); control.backgroundColor(WinAPI::rgb2int(128,128,128)); } else { //вернуть к значениям по умолчанию control.colorScheme(FormColorScheme::Auto); control.backgroundColor(WindowsPalette::WindowBackground); control.foregroundColor(WindowsPalette::WindowText); } ... |
|
|
За это сообщение автора поблагодарили: Pustik (1). |
14.12.2011, 10:23 | #3 |
Участник
|
Думаю это у всех так. У меня такая же хрень.
Цитата:
Сообщение от wolfstein
Попробуйте, например, так:
X++: ... if(payCalendarDate.PayDayType == RPayDayType::Holiday) { //изменить цвет колонки control.colorScheme(FormColorScheme::RGB); control.backgroundColor(WinAPI::rgb2int(128,128,128)); } else { //вернуть к значениям по умолчанию control.colorScheme(FormColorScheme::Auto); control.backgroundColor(WindowsPalette::WindowBackground); control.foregroundColor(WindowsPalette::WindowText); } ... Вот так будет номано : X++: control.colorScheme(FormColorScheme::WindowsPalette); if(payCalendarDate.PayDayType == RPayDayType::Holiday) control.backgroundColor(WindowsPalette::InactiveBorder); else control.backgroundColor(WindowsPalette::WindowBackground);
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 14.12.2011 в 10:34. |
|
|
За это сообщение автора поблагодарили: wolfstein (1). |
14.12.2011, 12:26 | #4 |
Участник
|
Спасибо за варианты. Не помогло. Сделал выделение по цвету шрифта.
X++: control.colorScheme(FormColorScheme::RGB);
if(payCalendarDate.PayDayType == RPayDayType::Holiday)
{
control.backgroundColor(WinApi::RGB2int(255,255,255));
control.foregroundColor(WinApi::RGB2int(127,0,0));
control.bold(9);
}
else
{
control.backgroundColor(WinApi::RGB2int(255,255,255));
} |
|
14.12.2011, 12:52 | #5 |
Участник
|
Странно, у меня именно с control.colorScheme(FormColorScheme::WindowsPalette); работает как часы. Тестировалось неоднократно. Даже если не кодом, а тупо в свойстве контрола backgroundColor поставить WindowsPalette::InactiveBorder, то видно что оно не работает, пока в свойстве colorScheme не поставишь FormColorScheme::WindowsPalette.
Ну и решение с foregroundColor и bold тоже не плохой вариант.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 14.12.2011 в 13:00. |
|