IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> задача на изменение цвета фона
сообщение
Сообщение #1


Гость






Ув. программисты на дельфи, помогите пожалуйста с такой задачей:

1) Создать главное окно, содержащее меню вида: Input color, Change, Exit, при выборе Exit программа закрывается.
2) При выборе Input color открывается диалоговое окно, содержащее 3 поля типа Tedit, группу из 2-x кнопок TCheckBox в TGroupBox (кнопки left и right) и кноgre ок типа TBitBtn
В поля TEdit вводятся 3 ргб составляющие цвета. При выборе Change изменяется на заданный цвет фон главного окна (левая, правая или обе половины соответственно, в зависимости от выбора кнопок в диалоговом окне)

Так как я никогда не писал в дельфях, а задачу нужно срочно, то у меня возникла такая проблема:
Каким образом реализовывать изменение цвета? Насколько глупым будет создать две TPanel (соответственно, левую и правую) и красить в нужный цвет их?
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
создать две TPanel (соответственно, левую и правую) и красить в нужный цвет их?
Можно, конечно, и так... А можно просто отрисовать на канве формы:
  var i: integer;
...
Form1.Canvas.Brush.Color := ... // нужный тебе цвет.
i := byte(RadioButton1.Checked) + 2 * byte(RadioButton2.Checked);
Form1.Canvas.FillRect(Rect((form1.Width div 2) * (i - 1), 0, (form1.Width div 2) * i, form1.Height));

где Radiobutton1 отвечает за левую часть формы, а RadioButton2 - за правую...

P.S.
А, у тебя должен быть CheckBox? Я почему-то прочитал RadioButton... Тогда вот так:

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
Form1.Canvas.Brush.Color := ... // Твой цвет ...
if CheckBox1.Checked then // Левая сторона
Form1.Canvas.FillRect(Rect(0, 0, form1.Width div 2, form1.Height));
if CheckBox2.Checked then // Правая сторона
Form1.Canvas.FillRect(Rect(Form1.Width div 2, 0, form1.Width, form1.Height));
end;


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 3:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name