![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвета в Excel [D7, WinXP]
Neket © (2007-04-19 17:45:00)Подскажите как быть?
Есть такой код
var
ClYell:TColor = ($ccffff);
ClGren:TColor = ($00a000);
begin
......
XLApp.ActiveSheet.Cells.Item[i, K+7].Interior.Color := clYell;
XLApp.ActiveSheet.Cells.Item[i+1, K+7].Interior.Color := clGren;
.......
if XLApp.Cells[i,k].Interior.Color=clYell then showmessge('Hello World'); // Сдесь срабатывает
if XLApp.Cells[i,k].Interior.Color=clGren then showmessge('By By World'); // А Сдесь Пропускает
end;
Причем если работаею со стандартными цветами (тип CLRed или CLGreen) то все срабатывает.
Neket (2007-04-20 09:07:00) [1]Все вроде разобрался.
Пришлось после установки в ClGren запоминать XLApp.ActiveSheet.Cells.Item[i + 1, K + 7].Interior.Color отдельно в другую переменную, а потом уже сверяться именно с этой переменной.
ЮЮ (2007-04-20 08:57:00) [2]Странно но вы правы...
В чем? У меня было два предположения.
1) clGren не устанавливается, устанавлиыается какой-то близкий к нему.
Возьми его в качестве clGren
2) clGren затирается по ходу делв другим цветом, хотя clGreen - нет.
При затирании "анализируется" цвет, причем "коряво", т.е. сравнивается с clGren.
Neket (2007-04-20 08:40:00) [3]
> showmessge(IntToStr(clGren) + ' ' + IntToStr(XLApp.ActiveSheet.
> Cells.Item[i + 1, K + 7].Interior.Color));
Странно но вы правы... Интересно а с чем это связано. Кстати что странно, ячейка сама по себе закрашивается.
И если я ставлю так
XLApp.ActiveSheet.Cells.Item[i + 1, K + 7].Interior.Color := clGreen;
showmessge(IntToStr(clGreen) + ' ' + IntToStr(XLApp.ActiveSheet.Cells.Item[i + 1, K + 7].Interior.Color));
// Т.е. задаю стандартый цвет.
то все совпадает.
ЮЮ (2007-04-20 08:21:00) [4]для начала проверь (сразу, без ...), действительно установился или нет цвет в ячейке:
XLApp.ActiveSheet.Cells.Item[i + 1, K + 7].Interior.Color := clGren;
showmessge(IntToStr(clGren) + ' ' + IntToStr(XLApp.ActiveSheet.Cells.Item[i + 1, K + 7].Interior.Color));
Неужели без showmessge нелязя? Поставь брэкпоинт в отладчике.
З.Ы. боюсь при следующей итерации i ты перезатираешь clGren и снова ставишь clYell;
Neket (2007-04-20 08:09:00) [5]Народ ну подскажите пожалуйста. Очень нада. Как с этим работать?