C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вопрос знатокам по AdvStringGrid, Объединение ячеек и выравнивание текста
Stan
Отправлено: 18.03.2005, 16:18


Не зарегистрирован







Вопрос собственно в названии темы.
Как в AdvStringGrid объединить несколько ячеек в одну и выровнять текст в ней (уже объединенной) по центру.
А то что-то у меня, глупого, как то не получилось smile.gif
Lizard
Отправлено: 31.05.2005, 09:52


Ученик-кочегар

Группа: Участник
Сообщений: 20



Часто возникают вопросы по работе с ячейками AdvStringGrid'а: как выравнить текст по центру, изменить свойства шрифта и цвет ячейки (знаю по своему опыту).
Привожу пример изменения этих свойств без использования события OnDrawCell.

CODE

void __fastcall TForm1::FormCreate(TObject *Sender)
{
int Col = 1, Row = 1, begin = 0x00E8B888, end = 0x00FEFCFA;
AnsiString s1 = "Способ №1", s2 = "Способ №2";
AdvStringGrid1->ShowSelection = 0;

//-----------------------первый способ--------------------------------------
AdvStringGrid1->Cells[Col][Row] = s1;
AdvStringGrid1->CellProperties[Col][Row]->FontStyle << fsBold;
AdvStringGrid1->CellProperties[Col][Row]->FontColor = clRed;
AdvStringGrid1->CellProperties[Col][Row]->FontSize = 10;
AdvStringGrid1->CellProperties[Col][Row]->FontName = "Times New Roman";
AdvStringGrid1->Alignments[Col][Row] = taCenter;

AdvStringGrid1->MergeCells(Col,Row,2,1);
// градиент цвета в ячейки
AdvStringGrid1->Colors[Col][Row] = (TColor)begin;
AdvStringGrid1->ColorsTo[Col][Row] = (TColor)end;

//-----------------------второй способ--------------------------------------
AdvStringGrid1->Cells[Col][++Row] = "<P align=\"center\"><FONT color = \"clred\" face = \"Times New Roman\" size = 10><B>" + s2 + "</P></B></FONT>";

AdvStringGrid1->MergeCells(Col,Row,2,1);
// градиент цвета в ячейки
AdvStringGrid1->Colors[Col][Row] = (TColor)begin;
AdvStringGrid1->ColorsTo[Col][Row] = (TColor)end;
}


Отредактировано Lizard — 31/05/2005, 10:26
Stan
Отправлено: 31.05.2005, 11:10


Не зарегистрирован







QUOTE (Lizard @ 31/05/2005, 09:52)
Часто возникают вопросы по работе с ячейками AdvStringGrid'а

Lizard, спасибо Вам за ответ, правда уже и не совсем актуально...
Хотя некоторые возможности, например по градиенту цвета заднего фона
CODE

AdvStringGrid1->Colors[Col][Row] = (TColor)begin;
AdvStringGrid1->ColorsTo[Col][Row] = (TColor)end;

я до сих пор не знал и представляются мне интересными smile.gif
Lizard, не подскажете как желаемый оттенок цвета получить в цифре, типа
CODE
begin = 0x00E8B888, end = 0x00FEFCFA;
?
Lizard
Отправлено: 31.05.2005, 11:41


Ученик-кочегар

Группа: Участник
Сообщений: 20



А я отвечал не только для Вас, но и для других читателей потому-то когда впервые сталкиваешься с AdvStrinfGrid'ом пытаешься создать красивую таблицу, но не у всем получается с первого раза, приходится тратить время на поиск, а тут сразу свойства ячейки двумя способами, может кому-нибудь и пригодится.

Объясню на примере формы: двойным кликом кликнете по свойству формы Color, появится диалог "Цвет", выбираете нужный цвет и нажмите ОК, из свойства Color копируете значение цвета, например, 0x004080FF.
Цвет формы восстанавливаете из списка свойства Color.

А еще есть вопросы по AdvStrinfGrid'у? Пиши отвечу smile.gif

Отредактировано Lizard — 31/05/2005, 11:45

Вернуться в Вопросы программирования в C++Builder