Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.08.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.004 c
3-1261549678
ANB
2009-12-23 09:27
2011.08.14
Копирование данных в DWH (Oracle)


6-1240487526
ZERAM
2009-04-23 15:52
2011.08.14
idHHP и charset


15-1303237191
delphi_developer
2011-04-19 22:19
2011.08.14
team lead и senior software engineer - одно и тоже?


2-1304369709
Lutdan
2011-05-03 00:55
2011.08.14
Delphi:Вывести в DBLookupComboBox нужною строку столбца


15-1303830643
Kerk
2011-04-26 19:10
2011.08.14
IT-профессионал - это кто?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский