1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Оттенки серого

Тема в разделе "Delphi - программирование", создана пользователем romen, 19 янв 2010.

  1. romen

    romen Гость

    Репутация:
    0
    Помогите разобраться с цветами в 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 цветов. Вопрос мастерам - можно ли как-нибудь автоматизировать процесс нахожденмя кода цвета?
     
  2. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    ОМГ. А почему бы просто не подставить диалог выбора цвета? т.е. Юзверь кликнул по ячейке, выскочил диалог выбора цвета, юзверь выбрал тот оттенок который ему нужен, нажал ок. 16-ричный код в ячейку вставился автоматом.
     
  3. romen

    romen Гость

    Репутация:
    0
    vital, Эта программа нужна для предоставления статистической информации. На 100-200 пунктов никто не будет вручную все выбирать
     
  4. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Эмм.. Ну тогда не руками цвета подбирай, а сделай цикл от 0 до сколько нужно цветов, в котором генерируй несколько оттенков серого(TList или просто массив).. Те. возьми какой-то изначальный серый-серый цвет, а потом изменяй его с шагом в.. ну пускай 10. (про 16-ю систему не забывая).
     
  5. romen

    romen Гость

    Репутация:
    0
    Спасибо за ответ, уже разобралась :)
     

Поделиться этой страницей