Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.035 c
1-1131710014
Альф
2005-11-11 14:53
2005.12.11
Извлечение данных из текстовых файлов


4-1128974346
Silver...
2005-10-10 23:59
2005.12.11
"RegisterHotKey" - оставить и активному приложению...


14-1132587549
Yura32
2005-11-21 18:39
2005.12.11
Zvuk


8-1120935016
murtix
2005-07-09 22:50
2005.12.11
Gdi+ и Delphi 2005


2-1132400297
Volfram
2005-11-19 14:38
2005.12.11
Проблема с MediaPlayer




   Наверх