Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена цвета выделения StringGrid 
:(
    Опции темы
AntonPavlov
Дата 11.10.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 28.5.2010

Репутация: нет
Всего: нет



Скажите, как изменить цвет выделения строк в компоненте StringGdid? Сам я нашел такой вот код:
Код

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; 
  Rect: TRect; State: TGridDrawState); 
const 
  SelectedColor = Clblue; 
begin 
  if (state = [gdSelected]) then 
   with TStringGrid(Sender), Canvas do 
   begin 
   Brush.Color := SelectedColor; 
   FillRect(Rect); 
   TextRect(Rect, Rect.Left + 2, Rect. + 2, Cells[aCol, aRow]); 
   end;

Но чтобы он работал, нужно поставить свойство DefaulDrawing в false, a у меня оно должно быть True, ибо тогда заполнение таблицы данными невозможно, при том, как это я делаю. А именно: 
Код

var
c, r, i :integer;
begin
WordsTable:= Base.GetTable('SELECT word FROM words WHERE LinkKey = ' + '"' + param + '"');
for i:=0 to sgWords.RowCount-1 do
sgWords.Rows[i].Clear;
sgWords.ColCount := 1;
sgWords.ColWidths[0] := sgWords.ClientWidth;
sgWords.RowCount := WordsTable.RowCount;
for c := 0 to sgWords.ColCount - 1 do
for r := 0 to sgWords.RowCount - 1 do
begin
sgWords.Cells[c,r] := WordsTable.FieldAsString(0);
WordsTable.Next;
end;

При DafaultDraw False, ка кя уже говорил, не работает заполнение, но работает смена выделения. А как сделать, чтобы и то и то работало? 

PM MAIL   Вверх
northener
Дата 11.10.2011, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(AntonPavlov @  11.10.2011,  20:03 Найти цитируемый пост)
 if (state = [gdSelected]) then

Подробно не смотрел код. Но вышеприведённая строчка уже признак неправильной работы с множеством, коим и является "State: TGridDrawState".
Правильная строчка должна бы выглядеть так:
Код

  if gdSelected in State then


Это сообщение отредактировал(а) northener - 11.10.2011, 23:06


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0848 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.