Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Grid   Найти похожие ветки 

 
dm37   (2005-11-11 09:19) [0]

Подскажите, возможно ли сделать такое
как известно в grid текст выглядит так:

строка 1:   a1   a2   a3
строка 2:   b1   b2   b3

нужно так:

строка 1:   первая группа
строка 2:   a1   a2   a3
строка 3:   вторая группа
строка 4:   b1   b2   b3

т.е. перерисовать одну строку в таблице без столбцов (например, как в Excel)


 
ЮЮ ©   (2005-11-11 09:45) [1]

Конечно можно. Никто ведь не запрещает рисовать на канвасе вне пределов ARect, переданного в качестве параметра соответствующего OnDrawCell

P.S. Grid-то какой?


 
dm37   (2005-11-11 09:53) [2]

StringGrid


 
ЮЮ ©   (2005-11-14 05:24) [3]


procedure TForm1.FormCreate(Sender: TObject);
begin
 // всю отрисовку берём на себя
 StringGrid1.DefaultDrawing := false;
 StringGrid1.Options := StringGrid1.Options - [goVertLine, goHorzLine];

 StringGrid1.ColCount := 3;
 StringGrid1.FixedCols := 0;
 StringGrid1.RowCount := 4;
 StringGrid1.FixedRows := 0;

 StringGrid1.Cells[0, 0] := "первая группа";
 StringGrid1.Cells[1, 0] := "|";
 StringGrid1.Cells[2, 0] := "|";

 StringGrid1.Cells[0, 1] := "a1";
 StringGrid1.Cells[1, 1] := "a2";
 StringGrid1.Cells[2, 1] := "a3";

 StringGrid1.Cells[0, 2] := "вторая группа";
 StringGrid1.Cells[1, 2] := "|";
 StringGrid1.Cells[2, 2] := "|";

 StringGrid1.Cells[0, 3] := "b1";
 StringGrid1.Cells[1, 3] := "b2";
 StringGrid1.Cells[2, 3] := "b3";
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
var
 col: integer;
begin
 if StringGrid1.Cells[ACol, ARow] = "|" then exit;

 // включаем в Rect объединяемые ячейки
 col := Acol + 1;
 while
   (col < StringGrid1.ColCount) and (StringGrid1.Cells[col, ARow] = "|")
 do begin
   Rect.Right := Rect.Right + StringGrid1.ColWidths[col] +  StringGrid1.GridLineWidth;
   inc(col);
 end;

 // очищаем прямоугольник
 StringGrid1.Canvas.Brush.Style := bsSolid;
 StringGrid1.Canvas.Brush.Color := StringGrid1.Color;
 StringGrid1.Canvas.FillRect(Rect);

 // рисуем сетку
 StringGrid1.Canvas.Pen.Color := clSilver;
 StringGrid1.Canvas.Rectangle(Rect);

 //выводим текст
 Rect.Right := Rect.Right - 1;
 Rect.Bottom := Rect.Bottom - 1;
 StringGrid1.Canvas.Font.Assign(StringGrid1.Font);
 StringGrid1.Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, StringGrid1.Cells[ACol, ARow]);
end;



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
1-1131351866
Mitchy
2005-11-07 11:24
2005.12.04
Загрузить форму из библиотеки в осн. приложение


4-1128006382
NikNil
2005-09-29 19:06
2005.12.04
Как получить список всех пользователей.


14-1131596363
Silvestr
2005-11-10 07:19
2005.12.04
Нежен компонент для вывода списка всего оборудования


2-1132085325
MRAk
2005-11-15 23:08
2005.12.04
Fs.free


1-1131391453
Андрей Молчанов
2005-11-07 22:24
2005.12.04
ListView и редактирование InPlace