Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Системные цвета в 1с (число прочтений - 3466 )
novichek
Экс-Участник


Системные цвета в 1с
15. Декабря 2008 :: 05:55
Печать  
как получить в 1с цвет определенный системой, н.р. цвет формы?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Системные цвета в 1с
Ответ #1 - 15. Декабря 2008 :: 06:11
Печать  
ЦветФона=-1
  
Наверх
ICQ  
IP записан
 
novichek
Экс-Участник


Re: Системные цвета в 1с
Ответ #2 - 15. Декабря 2008 :: 08:17
Печать  
не, мне нужно именно ПОЛУЧИТЬ его численное значение. Например хочу в табличном поле установить цвет фона = цвету формы. Как?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Системные цвета в 1с
Ответ #3 - 15. Декабря 2008 :: 08:25
Печать  
Код
Выбрать все
// Получим представление цвета из реестра
Функция глПолучитьСистемныйЦвет( псИдентификаторЦвета ) Экспорт
	// ИСПОЛЬЗОВАНИЕ:
	// м_СерыйЦвет = глПолучитьСистемныйЦвет( "Window" );
	//РасшАтрибут.ЦветФона = м_СерыйЦвет;
	//Если ПустоеЗначение(ЗначениеАтрибута) = 1 Тогда
	//	РасшАтрибут.ЦветФона = 255; // красный......
	//КонецЕсли;

	// идентификаторы цветов:
	// ActiveBorder - Рамка вокруг активного окна.
	//ButtonHilight, ButtonLight - Выделение трехмерных элементов.
	//AppWorkSpace - Фон окна приложения MDI (приложение, использующее многооконный интерфейс).
	//Background - Рабочий стол.
	//ButtonAlternateFace - Кнопка.
	//ButtonShadow - Тень, "отбрасываемая" кнопкой.
	//ButtonText - Текст надписи на поверхности кнопки.
	//TitleText - Текст заголовка окна, кнопки изменения размера, кнопки полосы просмотра.
	//GrayText - Текст серого цвета.
	//Hilight - Фон выбранного элемента в органе управления.
	//HilightText - Текст для выбранного органа управления.
	//InactiveBorder - Рамка вокруг неактивного окна.
	//InactiveTitle - Заголовок неактивного окна.
	//InactiveTitleText - Текст заголовка для неактивного окна.
	//InfoWindow - Фон элемента подсказка.
	//InfoText - Текст элемента подсказка.
	//Menu - Фон меню.
	//MenuText - Текст меню.
	//Scrollbar - Полоса просмотра.
	//Window - Фон окна.
	//WindowFrame - Рамка окна.
	//WindowText - Текст в окне.
	//ButtonFace,MenuBar,MenuHilight

	// НЕ НАШЕЛ КЛЮЧ РЕЕСТРА
	//BTNHIGHLIGHT - Выбранная кнопка.
	//3DDKSHADOW - Темная тень для трехмерных элементов.
	//3DFACE, BTNFACE - Поверхности трехмерных элементов.
	//3DHILIGHT, 3DHIGHLOIGHT, Выделение трехмерных элементов.
	//3DLIGHT - Свет для трехмерных элементов.
	//COLOR3DSHADOW,BTNHIGHLIGHT - Тень для трехмерных элементов.
	//ACTIVEBORDER - Рамка вокруг активного окна.
	//ACTIVECAPTION - Заголовок активного окна.


	ЗначВозврата = -1;
	СтрокаЦвета = "";
	Попытка
		СтрокаЦвета =  глWScript_Shell.RegRead("HKEY_CURRENT_USER\Control Panel\Colors\"+псИдентификаторЦвета);
	Исключение
		Сообщить(ОписаниеОшибки()+"[200612011227]");
		Возврат ЗначВозврата;
	КонецПопытки;
	// Маска цвета будет такой: "212 208 200" (RGB), надо только разложить
	СтрокаЦвета = СтрЗаменить(СтрокаЦвета," ",",");
	СписЦветов = глСтрокаВСписок(СтрокаЦвета);
	Если СписЦветов.РазмерСписка() <> 3 Тогда
		Возврат ЗначВозврата;
	КонецЕсли;
	_Красный = Число(СписЦветов.ПолучитьЗначение(1));
	_Зеленый = Число(СписЦветов.ПолучитьЗначение(2));
	_Синий	= Число(СписЦветов.ПолучитьЗначение(3));
	ЗначВозврата = Макс(0,_Синий)*65536+Макс(0,_Зеленый)*256+Макс(0,_Красный);

	Возврат ЗначВозврата;
КонецФункции // глПолучитьСистемныйЦвет()
 

  
Наверх
IP записан
 
novichek
Экс-Участник


Re: Системные цвета в 1с
Ответ #4 - 15. Декабря 2008 :: 09:14
Печать  
trdm: Спасибо! Как раз то что нужно.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать