Показать сообщение отдельно
  #1  
Старый 19.01.2010, 10:56
romen romen вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 5
Репутация: 10
По умолчанию Оттенки серого

Помогите разобраться с цветами в Delphi, пожалуйста

Дано дробное число, нужно его округлить до сотых. Присвоить цвет соответствующей ячейке. Например, значение 1 - черный, 0 - белый, 0.50 - серый. И так по аналогии, например, 0.48 - чуть светлее серого 0.5.
Для округления до десятых я вводил значения вручную. Например, так:

Код:
if ((trunc(cmas[i,j]*100) mod 10))>4 then tem:=trunc(cmas[i,j]*10)+1;
      if ((trunc(cmas[i,j]*100) mod 10))<=4 then tem:=trunc(cmas[i,j]*10);
        if tem=0 then Form2.Image1.Canvas.Brush.Color:=$00FFFFFF;
        if tem=1 then Form2.Image1.Canvas.Brush.Color:=$00F4F4F4;
        if tem=2 then Form2.Image1.Canvas.Brush.Color:=$00E4E4E4;
        if tem=3 then Form2.Image1.Canvas.Brush.Color:=$00D4D4D4;
        if tem=4 then Form2.Image1.Canvas.Brush.Color:=$00C1C1C1;
        if tem=5 then Form2.Image1.Canvas.Brush.Color:=$00B4B4B4;
        if tem=6 then Form2.Image1.Canvas.Brush.Color:=$008F8F8F;
        if tem=7 then Form2.Image1.Canvas.Brush.Color:=$006F6F6F;
        if tem=8 then Form2.Image1.Canvas.Brush.Color:=$00595959;
        if tem=9 then Form2.Image1.Canvas.Brush.Color:=$00404040;
        if tem=10 then Form2.Image1.Canvas.Brush.Color:=$00000000;
Конечно, округление далеко не изящно, но так было удобнее При округлении до сотых придется вручную подобрать 100 цветов. Вопрос мастерам - можно ли как-нибудь автоматизировать процесс нахожденмя кода цвета?
Ответить с цитированием