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

Вниз

Рандомный цвет   Найти похожие ветки 

 
MrBadge   (2011-04-13 10:45) [0]

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


 
brother ©   (2011-04-13 10:45) [1]

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

а это какие?


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

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

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


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

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


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

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


 
brother ©   (2011-04-13 12:09) [5]

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


 
brother ©   (2011-04-13 12:11) [6]

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

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


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

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


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

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

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


 
MBo ©   (2011-04-13 12:34) [9]

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


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

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


 
OW ©   (2011-04-13 17:14) [11]

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


 
OW ©   (2011-04-13 17:40) [12]

наверняка есть алгоритмы, на вскидку
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;


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


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

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


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


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


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


 
Dimka Maslov ©   (2011-04-14 13:22) [15]

Для того, чтобы отличить "светлый" цвет от "тёмного" надо перевести его в цветовое пространство HSL.


 
stas ©   (2011-04-21 16:28) [16]

MrBadge   (13.04.11 10:45)
Можно сделать так:
Label1.Font.Color:= Random(clWhite);
Label1.Color:=clWhite-Label1.Font.Color;

В это случае цвет фона будет являться негативом цвета шрифта и всегда будет виден, только вот насколько это красиво будет не знаю )


 
Dimka Maslov ©   (2011-04-22 21:52) [17]

stas ©   (21.04.11 16:28) [16]

Преставим себе ситуацию, когда цвет равен $808080....


 
KilkennyCat ©   (2011-04-23 01:18) [18]

смещать на процентов 30, да и все.


 
Германн ©   (2011-04-23 01:51) [19]


> смещать на процентов 30, да и все.

Хорошо сказано, но не понятно. :)


 
KilkennyCat ©   (2011-04-23 02:32) [20]

а что там понимать. берем ffffff - 30% будет 3с3с3с - вот и прибавляем их.
пример (k - это эти 30%):
000000 + k = 3с3с3с
ffffff + k = 3c3c3c
eeeeee + k = 2b2b2b

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


 
Германн ©   (2011-04-23 02:49) [21]


> так получаем четко выраженную разницу в яркости

Не буду спорить, лень вдумываться в то, что меня сейчас мало волнует.


 
Германн ©   (2011-04-23 03:01) [22]


> Германн ©   (23.04.11 02:49) [21]
>
>
> > так получаем четко выраженную разницу в яркости
>
> Не буду спорить, лень вдумываться в то, что меня сейчас
> мало волнует.
>

Ты вот мне объясни цветовую гамму PS/2 кабеля для клавы.
Data  - Black
Ground - Red
+5V  - Orange
Clock - Yellow
а то я в полном недопорумании. То ли я дурак, то ли не я.


 
KilkennyCat ©   (2011-04-23 03:08) [23]


> Германн ©   (23.04.11 03:01) [22]

а там много альтернативных вариантов.
+CLK --Green--Blue----White--Yellow-White-Blue
Data --White--Yellow--Green--Red----Green-Yellow
GND --Yellow--Black---Orange-Gray---Black-White
Vcc --Red-----Red----Blue----Brown--Red--Orange


 
KilkennyCat ©   (2011-04-23 03:10) [24]

твои цвета даже не влезают.т.е. еще один вариант....


 
Очень Злой   (2011-05-04 22:27) [25]


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


максимально разностный это скорее так:

if OldR>127 then NewR:=0 else NewR:=255;
и.т.д.


> смещать на процентов 30, да и все.


тогда сразу на 50% смещать...
NewRGB:=OldRGB xor $808080;

Только вот зачем лейбы красить в непонятные цвета, как хочет топикстартер не понимаю... Или это новая мода в дизайне?


 
Anatoly Podgoretsky ©   (2011-05-05 08:44) [26]

> Очень Злой  (04.05.2011 22:27:25)  [25]

Выпендриться, ни у кого нет, а меня есть, остальные ламеры позорные


 
w   (2011-05-05 15:15) [27]

делать рандомно цвет подложки от него негатив на метку


 
Anatoly Podgoretsky ©   (2011-05-05 15:39) [28]

> w  (05.05.2011 15:15:27)  [27]

Например 7fffffff -> 80000000


 
antonn ©   (2011-05-05 18:18) [29]


> делать рандомно цвет подложки от него негатив на метку

такой "колхоз" будет... :)


 
Amoeba_   (2011-05-05 19:49) [30]

Автор вопроса до сих пор так и не поведал, после какой травы ему в башку пришла его бредовая идея.


 
Anatoly Podgoretsky ©   (2011-05-05 20:42) [31]

> Amoeba_  (05.05.2011 19:49:30)  [30]

Тут помню, тут не помню.


 
antonn ©   (2011-05-05 22:41) [32]


> Автор вопроса до сих пор так и не поведал, после какой травы
> ему в башку пришла его бредовая идея.

Мне такая бредовая идея приходит когда я в играх метки на экране должен расставлять.


 
w   (2011-05-06 06:58) [33]


> Anatoly Podgoretsky ©   (05.05.11 15:39) [28]
> > w  (05.05.2011 15:15:27)  [27]Например 7fffffff -> 80000000


собсно про альфу никто и не говорит.


> antonn ©   (05.05.11 18:18) [29]
> > делать рандомно цвет подложки от него негатив на меткутакой
> "колхоз" будет... :)


Ну так оно и так колхоз :)


 
Dennis I. Komarov ©   (2011-05-06 10:21) [34]

Скрин покажи, а то пока действительно колхоз



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

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

Наверх




Память: 0.55 MB
Время: 0.01 c
2-1304500935
adigozelov
2011-05-04 13:22
2011.08.14
TBarcode


11-1236091839
jarek
2009-03-03 17:50
2011.08.14
"memory hoarding" problem


15-1303194418
OW
2011-04-19 10:26
2011.08.14
ничего себя тенденция на сайты второго уровня


2-1304432758
Drowsy
2011-05-03 18:25
2011.08.14
При закрытии программы появляется ошибка "Access violation".


15-1303457253
>|<
2011-04-22 11:27
2011.08.14
Посоветуйте компоненты для раскраски SQL