Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цвета в 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]

Народ ну подскажите пожалуйста. Очень нада. Как с этим работать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо