** Petr |
Отправлено: 22.04.2006, 00:09 |
|
Не зарегистрирован
|
Здравствуйте.
Как можно изменить цвет выделения в StringGrid (хочется посветлее как-то, повеселее) |
|
Valdemar |
Отправлено: 24.04.2006, 09:44 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
См. OnDrawCell |
|
** Petr |
Отправлено: 30.04.2006, 11:33 |
|
Не зарегистрирован
|
Это понятно. Это вобщем-то так и сделано. Но при этом приходится брать на себя и выравнивание текста в ячейке и т.д. Я понимаю, что свойство — цвет текста — обязательно имеется в классе TStringGrid, этот цвет ведь выбран кем-то при написании класса. Вот я и думаю — должна же быть возможность этот цвет изменять. |
|
Valdemar |
Отправлено: 02.05.2006, 10:07 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Посмотрите исходники метода DrawCell, там, если я не ошибаюсь, прописан конкретный цвет, а не берется какое-то свойство. |
|
esclkm |
Отправлено: 06.05.2006, 15:53 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
В свое время я полностью перерисовал грид, а цвет изменяется ну очень легко, просто надо преририсовать ячейки выделенную,
в событии ondrawcell пишешь, нечто вроде этого
CODE |
TStringGrid *Box= ((TStringGrid*)Sender);
TCanvas *ACanvas=Box->Canvas;
if (State.Contains(gdSelected))
{
ACanvas->Brush->Color=clBlue;
ACanvas->FillRect(Rect);
ACanvas->Brush->Style=bsClear;
ACanvas->Font->Color=clRed;
DrawText(ACanvas->Handle,Box->Cells[ACol][ARow].c_str(),Box->Cells[ACol][ARow].Length(),
&Rect, DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);
//Выводит текст ровно по центру, если, что заканчивает его Э...Э
}
if (State.Contains(gdFocused))
{
// remove the focus rect (i.e., XOR it away)
ACanvas->DrawFocusRect(Rect);
ACanvas->DrawFocusRect(TempRect);
}
ACanvas->Brush->Style=bsSolid;
|
Ну и все вроде... А вообще канва — замечательная вещь
Отредактировано esclkm — 06/05/2006, 15:59 |
|
Doga |
Отправлено: 06.05.2006, 16:03 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Господа! Может, лучше воспользоваться компонентом TRGrid? Там всё это уже реализовано и ничего дополнительно писать не нужно.
P.S. Скажете что это реклама? Ну что я могу Вам ответить ...
|
|
esclkm |
Отправлено: 10.05.2006, 01:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
Честно говоря не знаю, !!! я люблю только стандартное... и свои руки... |
|