Форум: "Начинающим";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
Внизdrawcell стиль канвы ячейки Найти похожие ветки
← →
bag (2009-08-04 21:45) [0]рисую в ondrawcell stringgrid"a,
if S = "+" then
if (ACol >= 0) and (ARow >= 0) then
begin
Canvas.Brush.Color := $00C1C1FF;
Canvas.Brush.Style := bsBDiagonal;
Canvas.Font.Style := [fsbold];
Canvas.Font.Size := 13;
Canvas.FillRect(Rect);
Canvas.TextOut(rect.left + 4, rect.top, S);
end;
если выставить Canvas.Brush.Style := bsBDiagonal; то штрихами будет весь грид, а мне надо чтобы конкретные ячейки, как решить вопрос?
самому рисовать линии?
← →
Дмитрий Белькевич (2009-08-04 22:00) [1]Если я верно понял, то вот здесь:
>if (ACol >= 0) and (ARow >= 0) then
поставь условия, в каких конкретно ячейках нужно рисовать шитриховку.
Например, в нечётных колонках:
if (Odd(ACol)) and (ARow >= 0) then
или в нечётных рядах:
if (ACol >= 0) and (Odd(ARow)) then
Но - нужно пробовать, не уверен на 100%.
← →
bag (2009-08-04 22:03) [2]Спасибо, дружище, но не помогло, рисую линии вручную :(
← →
Игорь Шевченко © (2009-08-04 22:40) [3]
> рисую линии вручную
Зря. Надо восстанавливать стиль кисти после рисования и использовать для диагональной штриховки не FillRect, а Rectangle с пустым пером.procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: string;
OldStyle: TBrushStyle;
begin
with StringGrid1.Canvas do
begin
OldStyle := Brush.Style;
S := StringGrid1.Cells[ACol, ARow];
if S = "+" then
if (ACol >= 0) and (ARow >= 0) then
begin
Brush.Color := $00C1C1FF;
Brush.Style := bsBDiagonal;
Pen.Style := psClear;
Font.Style := [fsbold];
Font.Size := 13;
Rectangle(Rect);
end
else
FillRect(Rect);
TextOut(Rect.left + 4, Rect.top, S);
Brush.Style := OldStyle;
end;
end;
← →
bag (2009-08-04 23:06) [4]Почему то в ячейке рисуется два раза один и тот же текст.
← →
Игорь Шевченко © (2009-08-04 23:24) [5]bag (04.08.09 23:06) [4]
DefaultDrawing = false поставь в свойствах StringGrid
"By default, the string is drawn into the cell before OnDrawCell
is called. This can be turned off (along with all the other default
drawing) by setting DefaultDrawing to false."
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c