Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
qwert228
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 130
Завершенные тесты: 1
#1

Сравнение цветов

02.04.2017, 14:25. Просмотров 906. Ответов 7

Не получается сделать сравнение цветов в panel.
Вот что я сделал
Delphi
1
2
3
if panel1.Color:=clGreen
and  panel15.Color:=clGreen then
label1.Caption:=a+1;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2017, 14:25
Ответы с готовыми решениями:

Набор из 23 пикселей случайных цветов(анимация)
Набор из 23 пикселей случайных цветов, двух квадратов с диагоналями,...

Разбегающиеся из центра окружности разных цветов
Написать программу, рисующую разбегающиеся из центра окружности разных цветов.

Переключения цветов шрифта на панели с использованием ScrollBar
Подскажите пожалуйста как с помощью ScrollBar'а сделать переключения цветов...

Как получить больше цветов, чем 8bit на канал (RGB)?
Как получить больше цветов, чем 8 bit на канал (RGB)? Стандартно, насколько я...

Сравнение дробных чисел
Всем привет. Проверяю версию программы. Получаю версию так: procedure...

7
Puporev
Модератор
54391 / 41972 / 28988
Регистрация: 18.05.2008
Сообщений: 98,869
02.04.2017, 14:55 #2
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var a:integer;
begin
a:=100;
if (panel1.Color=clGreen)
and  (panel5.Color=clGreen) then
label1.Caption:=inttostr(a+1);
 
end;
0
GoodWeather
142 / 141 / 59
Регистрация: 28.02.2017
Сообщений: 858
02.04.2017, 17:05 #3
Дак сравнение у вас вроде бы нормальное, это непонятно что вы пытались присвоить Caption, какого типа у вас a? Если строка - к строке незя прибавлять числа.
0
Puporev
Модератор
54391 / 41972 / 28988
Регистрация: 18.05.2008
Сообщений: 98,869
02.04.2017, 17:15 #4
Лучший ответ Сообщение было отмечено qwert228 как решение

Решение

Цитата Сообщение от GoodWeather Посмотреть сообщение
Дак сравнение у вас вроде бы нормальное,
Это нормальное сравнение?
if panel1.Color:=clGreen
and panel15.Color:=clGreen then
и без скобок?
2
GoodWeather
02.04.2017, 17:19
  #5

Не по теме:

оу... Без очков за комп сел, не увидел двоеточий, мой косяк, спасибо.

0
qwert228
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 130
Завершенные тесты: 1
02.04.2017, 17:48  [ТС] #6
Puporev, Спасибо. Помогите пожалуйста еще с одним вопросом. Не могу сделать так чтобы panel принимал наугад только 2 цвета (зеленый и красный). Попробовал так panel15.Color:=random(clgreen or clred); он он берет еще какие то цвета.
0
Puporev
Модератор
54391 / 41972 / 28988
Регистрация: 18.05.2008
Сообщений: 98,869
02.04.2017, 18:10 #7
Лучший ответ Сообщение было отмечено qwert228 как решение

Решение

Delphi
1
2
k:=random(2);
if k=0 then panel15.Color:=clGreen else  panel15.Color:=cRed;
1
GoodWeather
142 / 141 / 59
Регистрация: 28.02.2017
Сообщений: 858
02.04.2017, 21:22 #8
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize(); // надо вызвать один раз, в событии FormCreate вполне пойдёт
end;
 
procedure TForm1.Button1Click(Sender: TObject);
const MyColors: array [0..2] of TColor = (clRed, clGreen, clBlue); // список допустимых цветов, три цвета - с индексами от 0 до 2
begin
Panel1.Color:=MyColors[RandomRange(Low(MyColors), High(MyColors)+1)]; // берём случайный цвет из списка, нужен модуль Math
end;
Не учитывается что панель может быть уже этого же случайного цвета.

Добавлено через 22 минуты
А вот чтоб цвет обязательно сменялся:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
const MyColors: array [0..2] of TColor = (clRed, clGreen, clBlue);
var Col: TColor;
begin
repeat
    Col:=MyColors[RandomRange(Low(MyColors), High(MyColors)+1)];
    until (Col<>Panel1.Color);
Panel1.Color:=Col;
end;
0
02.04.2017, 21:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2017, 21:22

Выбор и сравнение Делфи
Здравствуйте! Глупый вопрос, но не знаю к кому обратиться и где написать!...

Деревья. Сравнение деревьев.
Рекурсивно и не рекурсивно создать и продемонстрировать работу логической...

Delphi сравнение 3 чисел.
Доброго времени суток! Прошу помочь с написанием приложеняия (Delphi 7)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru