Подкраска в табличном поле - не работает 16-ый шаблон..?

Автор Злоп, 10 апреля 2024, 20:59

« назад - далее »

Злоп

В свое время, при использовании формекса ушел с десятичного представления цвета (типа 15066592) к 16-ичному BGR (почему BGR сделано, а не RGB...? ну чисто интересно) - шестнадцетиринчым мне легче оперировать... даже тупо подбирая цвет...
.
Но тут вот коллега жалится что в ТабличномПоле раскраска, заданная в виде BRUSH[0xE5E5E0] - не работает.. черный фон получается...
.
Вопрос: порчему? или где-то что-то не так задали? или вТП свой механизм раскраски независимый от Формекса и в ТП не поддерживается 16-ые значения?

АЛьФ

Табличное поле никакого отношения к раскраске FormEx не имеет, там свои механизмы.

АЛьФ

BGR - результат ошибки, на которую слишком поздно обратили мое внимание.

victuan

Цитата: АЛьФ от 10 апреля 2024, 21:13Табличное поле никакого отношения к раскраске FormEx не имеет, там свои механизмы.
Цвет совпадет для этих двух объектов если его задавать целым десятичным числом.
Остальные способы задания цвета подойдут для раскраски планом раскраски формекс, но не подойдут для раскраски табличного поля.

trad

Цитата: Злоп от 10 апреля 2024, 20:59Но тут вот коллега жалится что в ТабличномПоле раскраска, заданная в виде BRUSH[0xE5E5E0] - не работает.. черный фон получается...

А куда в ТП коллега пытается присунуть BRUSH[0xE5E5E0]?
ЦветТекста, ЦветФона и т.п.? Он не читал в документации что эти свойства имеют числовой тип?

trad

для удобства выбора цвета я использую скрипт для опенконфа:

цвет.vbs
Sub SelectColor()

	Set doc = Windows.ActiveWnd.Document
	If doc = docWorkBook Then Set doc = doc.Page(1)

	If doc <> docText Then Exit Sub
	If not doc.IsOpen Then Exit Sub
	
	SelValue = doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol)

	set CD = CreateObject("MSComDlg.CommonDialog")
	CD.Flags = 3
	CD.CancelError = 1
	If SelValue = "" Then
	Else
		CD.Color = doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol)
	End If

	On Error Resume Next
	CD.ShowColor()
	if Err.Number > 0 Then Exit Sub
	
	doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol) = CD.Color

End Sub

+ хоткей



alyuev



Злоп

Цитата: trad от 12 апреля 2024, 08:58для удобства выбора цвета я использую скрипт для опенконфа:
.
чтото не получается у меня.
ругается, я уже поубирал все лишнее
говорить "ошибка выполнения скрипта, строка 6, позиция 0, код 0..."
.
Sub SelectColor()
Set doc = Windows.ActiveWnd.Document
If doc = docWorkBook Then Set doc = doc.Page(1)
If doc <> docText Then Exit Sub
If not doc.IsOpen Then Exit Sub
SelValue = doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol)
set CD = CreateObject("MSComDlg.CommonDialog")
CD.Flags = 3
CD.CancelError = 1
If SelValue = "" Then
Else
CD.Color = doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol)
End If
On Error Resume Next
CD.ShowColor()
if Err.Number > 0 Then Exit Sub
doc.Range(doc.SelStartLine, doc.SelStartCol, doc.SelEndLine, doc.SelEndCol) = CD.Color
End Sub

АЛьФ


trad

Цитата: Злоп от 12 апреля 2024, 14:25говорить "ошибка выполнения скрипта, строка 6, позиция 0, код 0..."
погугли MSComDlg.CommonDialog по сайтам 1cpp.ru и mista.ru

alyuev

Цитата: alyuev от 12 апреля 2024, 10:43А где это BGR используется?
Я имел в виду где в Formex нужно ставить BGR формат?

АЛьФ

Цитата: alyuev от 12 апреля 2024, 16:57
Цитата: alyuev от 12 апреля 2024, 10:43А где это BGR используется?
Я имел в виду где в Formex нужно ставить BGR формат?
В макросе раскраски в десятеричном значении.

Злоп