Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Странное обновление ColorDialog


Автор: NovemberDreamer 3.9.2008, 21:17
Здравствуйте, ковырять С++ я начал недавно, так что, если вопрос глупый, извиняйте.
Суть вот в чем: делаю изменение фона окна в опциях. При нажатии на кнопку "Фон" открывается ColorDialog, в нем выбираю цвет, цвет передается на компонент Panel (предпросмотр), но цвет почему-то меняется не на выбранный сейчас, а на выбранный при предыдущем открытии ColorDialog.

Вот код:
Код

void __fastcall TForm3::Button4Click(TObject *Sender)
{
ColorDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm3::ColorDialog1Close(TObject *Sender)
{
Panel1->Color = ColorDialog1->Color;
}


Я точно делаю что-то не так, но что именно - понять не могу.

Автор: 586 3.9.2008, 21:45
Обычно это так делается:
Код
void __fastcall TForm3::Button4Click(TObject *Sender)
{
    if(ColorDialog1->Execute())
    {
        Panel1->Color = ColorDialog1->Color;
    }
}


Добавлено @ 21:49
а ещё лучше, так:
Код
void __fastcall TForm1::Button4Click(TObject *Sender)
{
    ColorDialog1->Color = Panel1->Color;
    if(ColorDialog1->Execute())
    {
        Panel1->Color = ColorDialog1->Color;
    }
}

Автор: NovemberDreamer 4.9.2008, 01:00
Спасибо огромное, заработало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)