Pan-SQL |
Отправлено: 01.04.2005, 11:59 |
|
Не зарегистрирован
|
Можно ли программно изменить шрифт на кнопке, например, сделать полужирным. Если можно, то как? Заранее большое спасибо. |
|
Guest |
Отправлено: 01.04.2005, 12:02 |
|
Не зарегистрирован
|
TBitBtn |
|
Pan-SQL |
Отправлено: 01.04.2005, 12:08 |
|
Не зарегистрирован
|
Можно небольшой примерчик кода. |
|
Guest |
Отправлено: 01.04.2005, 12:38 |
|
Не зарегистрирован
|
CODE |
TBitBtn *bt = Bt_Load;
bt->Font->Color = clLime;
bt->Font->Size = 28;
...
|
|
|
** Harold |
Отправлено: 01.04.2005, 22:25 |
|
Не зарегистрирован
|
Я помучился с этими БитБатонами и ... взял TPanel и совершенно доморошенными способами, типа bevel вверх/вниз, поимел из него кнопку, которую раскрасить или картику приставить, али текст в три этажа, ну как мышкой пару раз по порноссылке щелкнуть...
CODE |
void __fastcall TForm1::pnl1Click(TObject *Sender)
{
...
if (pnl1_Clicked == true)
{
pnl1->Color=0x00C8D0D4; //серый
pnl1->BevelOuter= bvRaised;
pnl1_Clicked = false;
}
else
{
pnl1->Color=0x0000C000; //зеленый
pnl1->BevelOuter= bvLowered;
pnl1_Clicked = true;
}
...
}
|
Я конечно, чайник, но зачем еще тогда VCL?!
Удачи.
|
|
Rius |
Отправлено: 02.04.2005, 07:59 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
Это конечно хорошо, но как будет такая кнопка воспринимать стили XP ???
Вот эта не воспринимает, так как прорисовывается сама.
А текст в три этажа можно и обычными способами вывести:
CODE | //---------------------------------------------------------------------------
void __fastcall TFormMain::SetButtonMultiline(TButton *btn)
{
//Многострочная кнопка
DWORD h = GetWindowLong(btn->Handle, GWL_STYLE);
SetWindowLong(btn->Handle, GWL_STYLE, h | BS_MULTILINE);
}
...
SetButtonMultiline(Button1);
Button1->Caption = "Abra\nkadabra";
...
|
Отредактировано Rius — 02/04/2005, 11:03
|
|
** Harold |
Отправлено: 04.04.2005, 22:53 |
|
Не зарегистрирован
|
Ну, раз такое писать, Builder-то зачем тогда нужен? Надо уж сразу на MS переходить, нафига с такими знаниями "чужие" (borland'овые) обертки стандартных API'шных функций разворачивать/мусолить... |
|
Rius |
Отправлено: 05.04.2005, 06:54 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
Ещё никогда не слыхал, что VCL — это плохо? Жрет ресурсы, тормозит... все переходим на MSVC!
Панель не будет сама прорисовыватся как кнопка в системах, использующих MS Visual Styles, т.е. программа будет выглядеть чужеродно. Есть понятие стандартного интерфейса, которому дожны соответствовать все программы под Windows.
VCL только для удобства проектирования, а не для того, чтобы на пустом месте огород городить.
QUOTE | Надо уж сразу на MS переходить, нафига с такими знаниями "чужие" (borland'овые) обертки стандартных API'шных функций разворачивать/мусолить... | Любая хорошая программа под Windows будет использовать API, хоть в BCB/Delphi, хоть в MSVC. Как например будешь делать прозрачные панельки?
Отредактировано Rius — 05/04/2005, 10:00
|
|
62316e |
Отправлено: 05.04.2005, 14:07 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 38
|
Кстати, вот такой вопрос: а как зделать МултиЛайнKапшен у ТБатона под Kylix?
|
|
GIZMO |
Отправлено: 06.04.2005, 10:12 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
[QUOTE=** Harold,01/04/2005, 22:25]Я конечно, чайник, но зачем еще тогда VCL?!
[/QUOTE]
А зачем Ты тогда св-ми пользуешься?
TPanel::Color, TPanel::BevelOuter ... это VCL
[QUOTE=Rius]Панель не будет сама прорисовыватся как кнопка в системах, использующих MS Visual Styles, т.е. программа будет выглядеть чужеродно.[/QUOTE]
GetVersionEx если XP рисуем соответственно...
|
|
Rius |
Отправлено: 06.04.2005, 10:18 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
QUOTE (GIZMO @ 06/04/2005, 13:12) | GetVersionEx если XP рисуем соответственно... |
Т.е. юзаем Uxtheme API для того, чтобы панель стала выглядеть в XP как кнопка? Не слишком ли много заморочек?
|
|
Pan_SQL |
Отправлено: 07.04.2005, 13:46 |
|
Не зарегистрирован
|
Хочу подробнее пояснить свою задачу: на форме имеется поле и пара кнопок SpeedButton. Когда я ввел какой-либо текст в поле и нажал Enter, текст одной из кнопок должен становиться поужырным, т.е. кнопка как бы активизировалась. Как можно это сделать? |
|
Valdemar |
Отправлено: 07.04.2005, 14:11 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Можно так:
CODE | void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key == VK_RETURN)
SpeedButton1->Font->Style=TFontStyles()<< fsBold;
} | |
|