Главная страница
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.029 c
3-1129726137
DancerMan
2005-10-19 16:48
2005.12.04
Удаление из *.dbf


2-1132341339
AuBaH
2005-11-18 22:15
2005.12.04
проблема с кнопками


4-1128094758
ROMBLLER
2005-09-30 19:39
2005.12.04
Как вытащить иконку из любого exe и впихнуть в timage?


4-1128327561
AngelFire
2005-10-03 12:19
2005.12.04
Секьюрный диалог


2-1132358469
timerlan
2005-11-19 03:01
2005.12.04
simplex metod