Просматривают:
1 Анонимно
Новый цвет |
||
|
||
---|---|---|
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
|
Суть вопроса:
Есть имя цвета в Label1.Caption= "Pantone 176C" Нужно назначить переменной Dim myColor As new Color Подскажите как это сделать? Set myColor...????????????????????......= Label1.Caption
Опубликовано: 2010/2/20 21:53
|
|
|
Re: Новый цвет |
|
---|---|---|
Титан - модератор
Присоединился:
2006/4/8 19:42 Сообщений: 152
|
возможны варианты... вот один из них:
Dim c As New Color, pal As Palette, index& Set pal = Palettes.OpenFixed(cdrPANTONECoated) index = pal.FindColor("PANTONE 176 C") If index > 0 Then Set c = CreateFixedColor(cdrPANTONECoated, index) ActiveShape.Fill.ApplyUniformFill c Else 'color not found End If ОБРАТИТЕ ВНИМАНИЕ НА ПРОБЕЛ МЕЖДУ НОМЕРОМ И БУКВОЙ "С" в названии цвета.
Опубликовано: 2010/2/20 22:04
|
|
|
Re: Новый цвет |
|
---|---|---|
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
|
Благодарю за "пример" Весьма помог .
столкнулся с другой задачей: как по имени цвета узнать принадлежность к конкретной палитре палитре? например cdrHKS, ,cdrPANTONEHexCoated, cdrPANTONEHexUncoated, cdrPANTONEMatte, cdrPANTONEMetallic, cdrPANTONEPastelCoated, cdrPANTONEPastelUncoated, cdrPANTONEProcess, cdrPANTONEProcessCoatedEURO, cdrPANTONESolid2ProcessEURO, cdrPANTONEUncoated
Опубликовано: 2010/2/20 23:52
|
|
|
Re: Новый цвет |
|
---|---|---|
Титан - модератор
Присоединился:
2006/4/8 19:42 Сообщений: 152
|
по-хорошему проанализировать самому в коде принадлежность исходя из диапазона номеров и букв, либо брутфорсом перебрать в цикле все палитры))
set myColor = paletteSearch( Label1.Caption ) ............... Function paletteSearch(colorName$) As Color Dim pal As Palette, var As Variant, index&, i&, bClose As Boolean On Error Resume Next For Each var In Array(cdrTRUMATCH, cdrPANTONEProcess, cdrPANTONECorel8, cdrFOCOLTONE, cdrSpectraMaster, cdrTOYO, cdrDIC, cdrLab, cdrHKS, cdrWebSafe, cdrPANTONEMetallic, cdrPANTONEPastelCoated, cdrPANTONEPastelUncoated, cdrPANTONEHexCoated, cdrPANTONEHexUncoated, cdrPANTONEMatte, cdrPANTONECoated, cdrPANTONEUncoated, cdrPANTONEProcessCoatedEURO, cdrPANTONESolid2ProcessEURO) 'keep user opened palettes bClose = True For i = 1 To Palettes.Count If Palettes(i).PaletteID = var Then bClose = False: Exit For Next 'search palette Set pal = Palettes.OpenFixed(var) If Not pal Is Nothing Then index = pal.FindColor(colorName) If bClose Then ' close palette bug workaround For i = 1 To Palettes.Count If Palettes(i).PaletteID = pal.PaletteID Then Palettes(i).Close: Exit For Next End If Set pal = Nothing 'found? If index > 0 Then Set paletteSearch = CreateFixedColor(var, index) Exit Function 'color is found End If End If Next ' color was not found, 'paletteSearch' is nothing End Function
Опубликовано: 2010/2/21 0:18
|
|
|
Re: Новый цвет |
|
---|---|---|
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01 Откуда Москва
Сообщений: 49
|
wOxxOm благодарю!!... а есть способ как нибудь ускорить такой поиск.? (((
Опубликовано: 2010/2/21 16:51
|
|
|
Re: Новый цвет |
|
---|---|---|
Титан - модератор
Присоединился:
2006/4/8 19:42 Сообщений: 152
|
имхо только если проанализировать самому в коде принадлежность исходя из диапазона номеров и букв, которые можно посмотреть в окошке настройки FILL (Shift-F11 вроде) на плашке, а там палитры))
Опубликовано: 2010/2/21 16:57
|
|