| 
| 
 | Вопрос # 4 735/ вопрос открыт / | 
 |  Здравствуйте!Возможно ли в TValueListEditor задать цвет нефиксированной ячейки и как?
 
|  |   Вопрос задал: Roman Novikov (статус: Посетитель)Вопрос отправлен: 16 ноября 2010, 12:29
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 17 ноября 2010, 10:50; участников в обсуждении: 3. 
|   | Ерёмин А.А. (статус: *Администратор), 16 ноября 2010, 14:18 [#1]:Свойство Color   |  
|   | Roman Novikov (статус: Посетитель), 16 ноября 2010, 14:54 [#2]:Можно примерчик? Не нашел свойства. В вопросе имелись ввиду ячейки значений свойств, они должны быть красноватыми для некорректных значений и зеленоватыми для нормальных.
 |  
|   | Вадим К (статус: Академик), 16 ноября 2010, 15:03 [#3]:придется писать свой обработчик отрисовки ячеек. Это правильный выход. Но не надо забывать, что когда ячейка редактируется, с ней дела обстоят немного по другому. Там фактически создается временный Edit.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Roman Novikov (статус: Посетитель), 16 ноября 2010, 16:13 [#4]:Я так сделал: 
 
 procedure TObjEditForm.ValueListEditor1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
const
  clPaleGreen = TColor($CCFFCC);
  clPaleRed =   TColor($CCCCFF);
  clPaleWhite = TColor($FFFFFF);
begin
 
    if (ACol = 1) and (ARow > 0) then
    begin
        if (CorrectValues[ARow] = 1) then
             ValueListEditor1.Canvas.Brush.Color := clPaleGreen
        else
            if (CorrectValues[ARow] = 0) then
                ValueListEditor1.Canvas.Brush.Color := clPaleRed
            else
                ValueListEditor1.Canvas.Brush.Color := clPaleWhite;
        ValueListEditor1.Canvas.FillRect(Rect);
        ValueListEditor1.Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, ValueListEditor1.Cells[Acol, Arow]);
    end;
end;Если в массиве единичка, то значение корректно.
 |  
|   | Roman Novikov (статус: Посетитель), 16 ноября 2010, 16:23 [#5]:Подскажите еще как переводить тройки цветов RGB в шанстнадцатеричную и десятичную систему. |  
|   | Вадим К (статус: Академик), 16 ноября 2010, 16:31 [#6]:функция rgb(red, green, blue) 
 пример
 obj.color := rgb(255,0,0); будет красный цвет. переводить в шестнадцатеричную систему не нужно
  но если хочется показать в ней, то так
 Showmessage(IntToHex(somecolor, 6))
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Roman Novikov (статус: Посетитель), 17 ноября 2010, 10:50 [#7]:Спасибо, Вадим =) |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |