Alex47
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору alexpiv Часто использую цикл по cxGrid1DBTableView1.ViewData - там хранятся видимые записи грида, с учетом текущего фильтра. Ниже дан пример с точностью до идеи. Count := cxGrid1DBTableView1.ViewData.RecordCount; IndexCheck := cxGrid1DBTableView1CheckColumn.Index; // Индекс колонки в которой for I := 0 to Count-1 do // проставляются галочки begin if cxGrid1DBTableView1.ViewData.Records[I].Values[IndexCheck] = True then begin // это, если тип данных в колонке с галочкой - boolean, считаем, что при True compt.Append; // галочка проставлена, а при false - нет CompT.FieldByName('firmy').AsString:= cxGrid1DBTableView1.ViewData. Records[I].Values[IndexCheck]; или CompT.FieldByName('firmy').AsString:= cxGrid1DBTableView1.ViewData. Records[I].DisplayTexts[IndexCheck]; end; Добавлено: Deedl1 Сделать можно, но, практически, ручками. Вот ответ Sinan Demir на подобный вопрос от 20.11.2003: - Создать a style for the footer - Выбрать в Style двойной размер шрифта, чтобы получить место для двух строк (Double the style.Font.Size. eg. 16 instad of 8 => you get two lines, no auto height!) - Нарисовать футер в обработчике CustomDrawFooterCell: (Ваш код прорисовки, естественно, будет отличаться) procedure TForm1.YourViewCustomDrawFooterCell( Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean); var FBounds: TRect; begin ACanvas.Font.Size := 8; ACanvas.FillRect(AViewInfo.Bounds); FBounds := AViewInfo.TextAreaBounds; FBounds.Bottom := FBounds.Bottom*2; ACanvas.DrawTexT(AViewInfo.Text, FBounds,cxWordBreak); ACanvas.FrameRect(AViewInfo.ContentBounds,clGray); ADone := True; end; Для последних версий Grid5 может быть возможны и другие варианты. | Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 14:14 11-01-2006 | Исправлено: Alex47, 14:52 11-01-2006 |
|