Страница 1 из 2

Маска формата для отображения в HEX

Добавлено: 06 Июль 2018, 12:59
Игорь Столяров
Привет всем !

Подскажите пожалуйста, а можно ли как-то отобразить десятичное число в 16-ом формате ?
Задача в общем-то простая. Вводим цвет из палитры и просто хочется показать его понятном HEX виде,
без преобразований (не нужно оно):

Код: Выделить всё

Loc:BalloonColor Long(Color:None)

  Code

  If ColorDialog('Винни, а какого он был цвета ?',Loc:BalloonColor)
     Message('Ну вот. Мой любимый цвет: ' & Format(Loc:BalloonColor,МАСКА_ДЛЯ_ОТОБРАЖЕНИЯ_В_HEX))
  end   
Заранее спасибо ! :)

Маска формата для отображения в HEX

Добавлено: 06 Июль 2018, 13:57
Yufil
Недели две назад искал. Нифига. Там ещё для цвета надо переставить байты, просто так не канает

Код: Выделить всё

HexColor  Cstring(10) 
HexLen    Long 
               Code 
               HexColor = LongToHex(  MyColor, False ) 
               HexLen = LEN( Clip(HexColor)) 
               HexColor = '#' & HexColor[ HexLen-1 : HexLen ] & HexColor[ HexLen-3 : HexLen-2 ] & HexColor[ HexLen-5 : HexLen-4 ]
               Return HexColor 

Маска формата для отображения в HEX

Добавлено: 06 Июль 2018, 20:25
kreator
Такой вариант:

Код: Выделить всё

LOC:HexColor = '#' & ByteToHex(Loc:BalloonColor%256, False) &  ByteToHex((LOC:BalloonColor%65536-LOC:BalloonColor%256)/256, False) & ByteToHex((LOC:BalloonColor-LOC:BalloonColor%256-(LOC:BalloonColor%65536-LOC:BalloonColor%256)*256)/65536, False)
Если в количестве скобок не ошибся.

Маска формата для отображения в HEX

Добавлено: 06 Июль 2018, 21:19
gopstop2007
_itoa(numer, buf, 16) :)

Маска формата для отображения в HEX

Добавлено: 06 Июль 2018, 23:54
RaFaeL
Функция RGBColor из libxlsxwriter не то что нужно делает?

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 8:20
Игорь Столяров
RaFaeL писал(а): 06 Июль 2018, 23:54Функция RGBColor из libxlsxwriter не то что нужно делает?
Спасибо. Именно то, и давно используется для отображения номера цвета в HEX. Но есть один момент.
Все указанные способы - это конвертация с использованием функций (встроенных или WinAPI).
A хотелось бы просто отображать номер цвета в поле, вводить, редактировать в HEX … но как я понял, так низя.

Цвет в Clarion - это обычное десятичное число, и в этом есть некий опус, противоречащий общепринятым представлениям.
Так же как указание разрешения картинки в пикселях на метр (FreeImage) или диаметра водопроводной трубы в сантиметрах ... ;)

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 10:45
Yufil
A хотелось бы просто отображать номер цвета в поле, вводить, редактировать в HEX … но как я понял, так низя.
Можно по идее - три спинбокса или комбобокса с выбором из очереди ( от 00 до ff). Уже который год собираюсь реализовать :D. Сейчас просто прописывается кларионовский код цвета или можно выбрать кнопкой из ColorDialog, научил дизайнеров - они на листочек записывают коды нужных цветов и потом вставляют. А в ColorDialog есть явная установка цвета по кодам RGB, всех устраивает.

А Hex цвет сделал, чтобы могли посмотреть, как оно в HTML будет выглядеть ...

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 11:15
Игорь Столяров
Вот тоже и оно - приходится как-то изворачиваться. Хотя живой пример - рядом.
Те же дата или время - тоже некая цифра, но форматы @D и @T позволяют работать с этим цифровым
значением в общепринятом формате без каких либо проблем. Почему тоже не сделано с цветом - непонятно.

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 11:24
kreator
Игорь Столяров писал(а): 07 Июль 2018, 11:15 Вот тоже и оно - приходится как-то изворачиваться. Хотя живой пример - рядом.
Те же дата или время - тоже некая цифра, но форматы @D и @T позволяют работать с этим цифровым
значением в общепринятом формате без каких либо проблем. Почему тоже не сделано с цветом - непонятно.
Ну не совсем тоже самое. Цвет в формате HEX кому нужен? Верстальщикам веб-страниц? для обычного пользователя не особо нужен.

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 11:41
Дед Пахом
Года 3 назад Брюс Джонсон (Capesoft) собирал предложения о форматах, которых не хватает (речь шла именно о picture tokens, типа @H для hex). Насобирал штук 40 и отправил в Problem Tracker. Где всё и умерло.

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 11:52
Игорь Столяров
kreator писал(а): 07 Июль 2018, 11:24Ну не совсем тоже самое.
Можно посмотреть на ситуацию немного с другой стороны. Цвет или дата - воспринимается в полне определённом виде.
В различных системах программирования или СУБД ТЕХНОЛОГИЧЕСКИ цвет или дата реализуется по разному. И нет проблем.
С точки зрения пользователя дата 07.07.2018 или цвет FFDDAA, а как оно внутри реализовано в Clarion или Microsoft.SQL - все равно.
Должен быть простой, доступный и понятный механизм работы с типом данных. В Clarion для даты это есть, для цвета - нет.

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 11:54
Игорь Столяров
Дед Пахом писал(а): 07 Июль 2018, 11:41речь шла именно о picture tokens, типа @H для hex
Радует, что я не сельский сумасшедший, которому в голову пришли столь очевидные вещи … ;)

Маска формата для отображения в HEX

Добавлено: 07 Июль 2018, 14:35
vic7tar
А про cwutil.inc подзабыли, там хексы всякие и колоры.

Маска формата для отображения в HEX

Добавлено: 22 Август 2018, 12:14
kreator
Дед Пахом писал(а): 07 Июль 2018, 11:41 Года 3 назад Брюс Джонсон (Capesoft) собирал предложения о форматах, которых не хватает (речь шла именно о picture tokens, типа @H для hex). Насобирал штук 40 и отправил в Problem Tracker. Где всё и умерло.
А нет у нас формата (типа обрезанного @d4) или ещё чего-нибудь простого для вывода названия месяца? Choose как-то громоздко.

Маска формата для отображения в HEX

Добавлено: 22 Август 2018, 12:35
Игорь Столяров
kreator писал(а): 22 Август 2018, 12:14простого для вывода названия месяца
На вскидку ! ;)

Код: Выделить всё

  Message(      Sub(Format(Today(),@d4),1,InString(' ',Format(Today(),@d4))-1)       )