Как окрасить отдельные клетки в заданный цвет?

Страницы: 1
RSS
Как окрасить отдельные клетки в заданный цвет?, Окрашивание клеток средствами Луа
 
Есть таблица, все ряды которой закрашены серым цветом.
Вопросы:
1) как нарисовать черную горизонтальную линию между 1 и 2 рядом?
2) как покрасить ячейки с индексами 1,2 и 2,3 в цвет RGB(255,0,0)?

Заранее спасибо!
Код
local Table = AllocTable()
AddColumn(Table, 1,"X", true, QTABLE_STRING_TYPE, 16)
AddColumn(Table, 2,"Y", true, QTABLE_DOUBLE_TYPE, 16)
AddColumn(Table, 3,"Z", true, QTABLE_DOUBLE_TYPE, 16)


CreateWindow(Table)
SetWindowCaption(Table, "Info")
SetWindowPos(Table, 0, 10, 800, 150)
InsertRow(Table, -1)
InsertRow(Table, -2)

SetColor(Table,1,QTABLE_NO_INDEX, RGB (255,250,250), RGB (0,0,0), RGB (255,250,250), RGB (0,0,0))
SetColor(Table,2,QTABLE_NO_INDEX, RGB (255,250,250), RGB (0,0,0), RGB (255,250,250), RGB (0,0,0))
 
Beginner, Ответы:
0) Нет, и быть не может никакой таблицы, все ряды которой закрашены серым цветом. Её нужно а) создать и б) покрасить все её ячейки в серый цвет
1) Таблица прорисовывается в текстовом режиме, а линии рисуются в графическом, поэтому нарисовать черную горизонтальную линию между 1 и 2 рядом невозможно - можно только эмулировать её отдельной строкой таблицы.
2) Воспользоваться функцией SetColor.
 
Цитата
Владимир написал:
Beginner, Ответы:
0) Нет, и быть не может никакой таблицы, все ряды которой закрашены серым цветом. Её нужно а) создать и б) покрасить все её ячейки в серый цвет
1) Таблица прорисовывается в текстовом режиме, а линии рисуются в графическом, поэтому нарисовать черную горизонтальную линию между 1 и 2 рядом невозможно - можно только эмулировать её отдельной строкой таблицы.
2) Воспользоваться функцией SetColor.
Владимир, а как в setcolor  индекс прописать? В этом и есть основной вопрос
 
Beginner, Индекс ЧЕГО?
 
Цитата
Владимир написал:
Beginner, Индекс ЧЕГО?
Мне нужно, чтобы 2 клетка сверху и 3 снизу были окрашены  RGB(255,0,0).
Все остальное остается серым.
Как это прописать?
 
Beginner, А почему все остальное остается серым? Создавали таблицу Вы, значит, и ячейки должны были красить именно Вы. А прописать просто:
SetColor (iTable, iRow, iCol, ClF, ClT,-1,-1);
 
Вопрос решился. Всем спасибо
 
Приветствую, не стал делать новую тему, спрошу здесь. Как в SetColor сделать заливку ячейки, которая меняется два раза, первый - если значение в ячейке в моменте было 100 - красит в зеленый, и не зависимо, от того какие значения были в ячейке после - 150, 200,30, -30, -80, перекрашивает при значении -100 в касный, и так же обратно следующая перекраска из красного в зеленый по достижения значения - 100.
 
 И так же обратно следующая перекраска из красного в зеленый по достижения значения  100. Извиняюсь не понял, как редактировать сообщения.
 
Как сделать чтобы при пересечении нуля цвет менялся понятно:
function BCellColor(change) if change > 0 then return RGB(0,100,0) else return RGB(100,0,0) end end
Но какую логику применить, чтобы цвет менялся при достижения заданного значения в ячейке и фиксировался до достижения противоположного значения со знаком -, не могу сообразить, поскажите пожалуйста, очень нужно.
 
CAHDPO, добрый день.

Для решения Вашей задачи проверяйте значение в ячейке и при необходимом результате вызывайте SetColor:

Код
function color()
   if val == 100 then
      SetColor() --закрасить зеленым
   elseif val == -100 then
      SetColor() --закрасить красным
   end
end
Страницы: 1
Читают тему
Наверх