![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
правильная работа с цветом [D6, XP]
DSKalugin © (2005-11-22 13:07:00)Всем привет. Вот уж не думал что меня занесет в раздел к «Начинающим» :-))
Есть список деталей, которые надо покрасить определенным образом.Взаимозаменяемые (те которые tmpReadQuery.Fields[0].AsString='Y')должны быть одинакового цвета. Общий список может содержать произвольное количество деталей.
Как грамотно вычислять палитру фона для каждого последующего блока взаимозаменяемых деталей?
Если я вычитаю по 255 от белого, то цвет не меняется. Ставлю - 400 - меняется...
if (tpCross=0) then begin
with tmpReadQuery do begin
Close;
SQL.Text:='SELECT YN FROM "ChkCrossLink"(:c1,:c2,'+IntToStr(Vendor_ID)+')';
Prepare;
end;
packColor:=clWhite-2; UseColor:=True;
crList[0].crBgColor:=packColor;
for i:=0 to CrossCount-1 do begin
tmpReadQuery.ParamByName('c1').AsInteger:=crList[i].crInd;
if (crList[i].crBgColor=clWhite) then begin
if UseColor then packColor:=packColor-400;
UseColor:=False;
crColor:=packColor;
crList[i].crBgColor:=crColor;
end
else crColor:=crList[i].crBgColor;
for j:=i+1 to CrossCount-1 do begin
// if (crList[j].crBgColor<>clWhite) then Continue;
tmpReadQuery.ParamByName('c2').AsInteger:=crList[j].crInd;
tmpReadQuery.ExecQuery;
if tmpReadQuery.Fields[0].AsString='Y'
then begin
crList[j].crBgColor:=crColor; //
UseColor:=True;
end;
tmpReadQuery.Close;
end;
end;
end;
DSKalugin (2005-11-22 14:29:00) [1]
> множество неизвестных переменных.
да код этот и даром тут не нужен, так просто привел.
достаточно было написать тут
var packColor:TColor;
...
packColor:=clWhite-2;
начало цыкла
packColor:=packColor-400;
конец цикла
Вопрос как с цветом работать. Вернее как его менять правильно.
Подал по другому, пожалуйста, Анатолий. Но не в подаче дело. Уверен на все 100% что вам нечего ответить просто навсего. Так зачем морать страницу?
clickmaker (2005-11-22 14:20:00) [2]
> Если я вычитаю по 255 от белого, то цвет не меняется. Ставлю
> - 400 - меняется
255 от всех 32-бит? Это слишком мало, чтоб на глаз заметить.
Раскладывай на R,G,B и от них отнимай
Anatoly Podgoretsky (2005-11-22 14:08:00) [3]DSKalugin © (22.11.05 13:07)
Всем привет. Вот уж не думал что меня занесет в раздел к «Начинающим» :-))
Ну так и тема вопроса соответсвует. И подача материала тоже, множество неизвестных переменных.