Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2017, 14:27   #1
George87
 
Регистрация: 05.07.2017
Сообщений: 4
Лампочка Открыть окно выбора цвета, чтобы получить цвет и его название

Названия цветов определяются только с эстетической целью.
Хочу показать-поделиться. Может быть, кому-то пригодится вариант решения.
Макрос см. на диске Yandex:
http://yadi.sk/d/efel4tND3NXFbH
(файл с макросом – около 1 Мб – больше разрешённого для загрузки на форум, даже если максимально сжать архиватором)

Для работы с системными цветами (GetSysColor) макрос использует библиотеку
%systemroot%\system32\user32.dll

Названия цветов взяты для примера с двух тематических сайтов, поэтому корректность этих названий здесь не обсуждается.

Название выбранного пользователем цвета определяется названием ближайшего цвета, которое записано в соответствующий массив.
Для этого используется формула аналитической геометрии для вычисления расстояния между двумя точками (представляющими цвета) в трёхмерной прямоугольной системе координат Декартова пространства. В качестве осей координат выступают составляющие компоненты цвета: красный (red), зелёный (green) и синий (blue).
Производится обработка и значений системных цветов Windows.

Я не стал делать массив названий цветов доступным для пользователя (например, в виде txt-файла), т.к. это значительно усложнило бы код макроса, ведь надо было бы не только прочитать данные из txt-файла, но и проверить их корректность. Для моего проекта в этом нет необходимости.

В программировании я – любитель-самоучка, поэтому понимаю, что мой алгоритм может требовать оптимизации.
Представленный проект разрабатывался в Excel 2003 на Windows 7x32 и немного тестировался под более новыми версиями Excel и Windows.

Представленный алгоритм был использован мною в макросе, создающем в Excel иерархический список всех каталогов и файлов, как в проводнике Windows:
http://yadi.sk/d/M6-sV68v3K7ie3
programmersforum.ru/showthread.php?t=310592

С уважением,
Георгий Данилов
George87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, которая в зависимости от порядкового номера цвета в спектре (1,2 ... 7) выводит его название (красный, оранжев Peter2 Помощь студентам 0 16.02.2016 17:58
Задача по delphi: изменять цвет формы и чтобы при снятии флажка с checkbox1 цвет формы был по умолчанию Luchfan12 Помощь студентам 8 13.03.2014 10:14
как вызвать форму выбора цвета в Qt4 datgen Помощь студентам 1 13.01.2013 22:38
Получить дескриптор окна для выбора цвета Тоба Win Api 10 21.08.2011 13:19
возможность выбора цвета stringgrid SVA90 Компоненты Delphi 1 15.05.2010 09:44