Скажите, как изменить цвет выделения строк в компоненте 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, ка кя уже говорил, не работает заполнение, но работает смена выделения. А как сделать, чтобы и то и то работало?
|