Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

правильная работа с цветом   Найти похожие ветки 

 
DSKalugin ©   (2005-11-22 13:07) [0]

Всем привет. Вот уж не думал что меня занесет в раздел к «Начинающим» :-))
Есть список деталей, которые надо покрасить определенным образом.Взаимозаменяемые (те которые 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;


 
Anatoly Podgoretsky ©   (2005-11-22 14:08) [1]

DSKalugin ©   (22.11.05 13:07)  
Всем привет. Вот уж не думал что меня занесет в раздел к «Начинающим» :-))

Ну так и тема вопроса соответсвует. И подача материала тоже, множество неизвестных переменных.


 
clickmaker ©   (2005-11-22 14:20) [2]


> Если я вычитаю по 255 от белого, то цвет не меняется. Ставлю
> - 400 - меняется

255 от всех 32-бит? Это слишком мало, чтоб на глаз заметить.
Раскладывай на R,G,B и от них отнимай


 
DSKalugin ©   (2005-11-22 14:29) [3]


>  множество неизвестных переменных.

да код этот и даром тут не нужен, так просто привел.
достаточно было написать тут


var packColor:TColor;
...
packColor:=clWhite-2;
начало цыкла
packColor:=packColor-400;
конец цикла


Вопрос как с цветом работать. Вернее как его менять правильно.
Подал по другому, пожалуйста, Анатолий. Но не в подаче дело. Уверен на все 100% что вам нечего ответить просто навсего. Так зачем морать страницу?



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
8-1121002140
Дмитрий Белькевич
2005-07-10 17:29
2005.12.11
Быстрый сдвиг массива точек на дробное значение точек.


2-1132248187
Leks
2005-11-17 20:23
2005.12.11
Нужно копирнуть проге саму себя


2-1133180011
Oni
2005-11-28 15:13
2005.12.11
Вызов функции из модуля, в TurboPascal e


3-1130312080
oleggar
2005-10-26 11:34
2005.12.11
Clipper indexing


14-1132149687
Red_imp
2005-11-16 17:01
2005.12.11
Прикольная задачка но может быть и была она тут тогда извините