Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рандомный цвет [D7, WinXP]


Страницы:   1 2

MrBadge ©   (2011-04-13 10:45:00) 

Здравствуйте!
Такой вопрос: можно ли, используя функцию рандом для покраски текста в лейбле, убрать все темные цвета (то есть с какого номера они начинаются?).
Label1.Font.Color:= Random(65535);
Или проще создать отдельно массив и отбирать цвета вручную? Заранее спасибо.


oldman   (2011-04-14 10:24:00) [21]


> Цвет фона темный и если лейбл становится темным, то его
> плохо видно.


Лейбл сам по себе становится темным?
Вероятно ты вставил настройку цвета. Так вставь настройку фона.
Пользователь под свои глаза и выставит.


ов   (2011-04-13 21:48:00) [22]


> OW ©   (13.04.11 17:40) [12]

не, ерунда, вообще-то
все 128 - и все, Color=подложке


OW   (2011-04-13 17:40:00) [23]

наверняка есть алгоритмы, на вскидку
NewR = 255-OldR
NewG = 255-OldG
NewB = 255-OldB
даст максимально разный цвет. Проверил так

object Form1: TForm1
 Left = 208
 Top = 143
 Width = 864
 Height = 512
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object shpB: TShape
   Left = 280
   Top = 152
   Width = 185
   Height = 169
 end
 object shpF: TShape
   Left = 336
   Top = 200
   Width = 65
   Height = 65
 end
 object lblB: TLabel
   Left = 32
   Top = 160
   Width = 17
   Height = 13
   Caption = 'lblB'
 end
 object lblF: TLabel
   Left = 32
   Top = 184
   Width = 16
   Height = 13
   Caption = 'lblF'
 end
 object trckbrRB: TTrackBar
   Left = 8
   Top = 8
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 0
   OnChange = trckbrRBChange
 end
 object trckbrGB: TTrackBar
   Left = 7
   Top = 48
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 1
   OnChange = trckbrRBChange
 end
 object trckbrBB: TTrackBar
   Left = 4
   Top = 96
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 2
   OnChange = trckbrRBChange
 end
 object trckbrFR: TTrackBar
   Left = 16
   Top = 336
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 3
   OnChange = trckbrRBChange
 end
 object trckbrFG: TTrackBar
   Left = 15
   Top = 376
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 4
   OnChange = trckbrRBChange
 end
 object trckbrFB: TTrackBar
   Left = 12
   Top = 424
   Width = 833
   Height = 45
   Max = 255
   TabOrder = 5
   OnChange = trckbrRBChange
 end
 object btn1: TButton
   Left = 624
   Top = 216
   Width = 75
   Height = 25
   Caption = 'btn1'
   TabOrder = 6
   OnClick = btn1Click
 end
end

type
 TForm1 = class(TForm)
   shpB: TShape;
   shpF: TShape;
   trckbrRB: TTrackBar;
   trckbrGB: TTrackBar;
   trckbrBB: TTrackBar;
   trckbrFR: TTrackBar;
   trckbrFG: TTrackBar;
   trckbrFB: TTrackBar;
   btn1: TButton;
   lblB: TLabel;
   lblF: TLabel;
   procedure trckbrRBChange(Sender: TObject);
   procedure btn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.trckbrRBChange(Sender: TObject);
begin
 shpB.Brush.Color := RGB(trckbrRB.Position, trckbrGB.Position, trckbrBB.Position);
 shpF.Brush.Color := RGB(trckbrFR.Position, trckbrFG.Position, trckbrFB.Position);
 lblB.Caption := Format('RGB(%d,%d,%d) C=%d',[trckbrRB.Position, trckbrGB.Position, trckbrBB.Position, shpB.Brush.Color]);
 lblF.Caption := Format('RGB(%d,%d,%d) C=%d',[trckbrFR.Position, trckbrFG.Position, trckbrFB.Position, shpF.Brush.Color]);  
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
 trckbrFR.Position := 255 - trckbrRB.Position;
 trckbrFG.Position := 255 - trckbrGB.Position;
 trckbrFB.Position := 255 - trckbrBB.Position;
end;


OW   (2011-04-13 17:14:00) [24]

в общем случае, неверно


MrBadge   (2011-04-13 12:35:00) [25]

Спасибо, вопрос решен так:
Label1.Font.Color:= RGB(128+Random(127), 128+Random(127), 128+Random(127));


MBo   (2011-04-13 12:34:00) [26]

Color := RGB(m + Random(256 - m), -//-, -//-)
m подобрать


И. Павел   (2011-04-13 12:14:00) [27]

> Label1.Font.Color:= Random(65535);

Почитайте в сети - как цвет представляется числом. И все станет понятно.


Медвежонок ХМЛ   (2011-04-13 12:12:00) [28]

http://ru.w3support.net/index.php?db=so&id=596216


brother   (2011-04-13 12:11:00) [29]

> создай 2 списка с цветами: темные и их аналоги - светлые...

2 массива: темные и светлые, думаю рандомно будет ниче смотреться...


brother   (2011-04-13 12:09:00) [30]

создай 2 списка с цветами: темные и их аналоги - светлые...


Медвежонок Пятачок   (2011-04-13 12:07:00) [31]

ну исключишь ты темные.
затем обнаружится что светлое на светлом тоже не видно.
потом что желтое на желтом......


MrBadge   (2011-04-13 11:44:00) [32]

то, что можно выбирать, это я знаю) Цвет фона темный и если лейбл становится темным, то его плохо видно. как раз это мне и надо решить


Медвежонок Пятачок   (2011-04-13 10:55:00) [33]

можно ли, используя функцию рандом для покраски текста в лейбле, убрать все темные цвета

можно рандомомно  выбирать цвет из списка допустимых цветов.
ничего ниоткуда не убирая.


brother   (2011-04-13 10:45:00) [34]

> все темные цвета (то есть с какого номера они начинаются?
> ).

а это какие?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо