Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Внизканвас в гриде Найти похожие ветки
← →
неугомонный (2007-10-15 16:21) [0]добрый день мастера, прошу помочь разобраться в проблеме.
в обработчике ondrawwcell грида:
If ARow > 0 then
begin
Y := table_2.DefaultRowHeight*ARow+ARow-1;
table_2.Canvas.MoveTo(0,Y);
table_2.Canvas.LineTo(table_2.Width, y);
end;
все норм, но если начинаю пользоваться скроллом то старые линии остаются и все криво выглядит, в ondrawwcell добавлять invalidate не рискнул...
как быть?
← →
Ins © (2007-10-15 16:23) [1]
> как быть?
Используйте параметр Rect, который также передается в обработчик события.
← →
неугомонный (2007-10-15 16:29) [2]не понимаю как rect может быть использован для рисования линий
← →
clickmaker © (2007-10-15 16:33) [3]
> [2] неугомонный (15.10.07 16:29)
и очень просто. две горизонтально, две вертикально
← →
Ins © (2007-10-15 16:34) [4]
> неугомонный (15.10.07 16:29) [2]
Не нужно координаты ячейки самому высчитывать, как вы это делаете, просто используйте параметр Rect - туда передаются правильные границы ячейки.
If ARow > 0 then
begin
Y := Rect.Bottom-1;
table_2.Canvas.MoveTo(0,Y);
table_2.Canvas.LineTo(table_2.Width, y);
end;
← →
неугомонный (2007-10-15 16:37) [5]и правда:)))
спасибо, но линии то потом все равно исчезают после скролла, почему?
← →
Германн © (2007-10-15 16:39) [6]
> неугомонный (15.10.07 16:37) [5]
А зачем ты в обработчике отрисовки одной ячейки рисуешь по всему гриду сразу?
← →
неугомонный (2007-10-15 16:41) [7]хм...можно как то иначе? как?
← →
Германн © (2007-10-15 16:43) [8]В данном обработчике рисуй только в пределах Rect.
← →
Германн © (2007-10-15 16:46) [9]А может будет проще добавить goHorzLine в Options?
← →
неугомонный (2007-10-15 16:49) [10]но тогда линии будут белого цвета, т.к. все ячейки у меня порашенны.
приходится самому рисовать черные линии
← →
Германн © (2007-10-15 16:51) [11]Тогда см [8]
← →
неугомонный (2007-10-15 16:56) [12]:( я не понимаю как это рисовать в пределах rect
← →
неугомонный (2007-10-15 16:59) [13]If ARow >= 0 then
begin
table_2.Canvas.MoveTo(0,Rect.Bottom);
table_2.Canvas.LineTo(table_2.Width, Rect.Bottom);
end;
если я правильно понял то так...работает:))
← →
Германн © (2007-10-15 16:59) [14]
> :( я не понимаю как это рисовать в пределах rect
>
От левого нижнего угла до правого нижнего угла.
← →
Германн © (2007-10-15 17:03) [15]If ARow >= 0 then
begin
table_2.Canvas.MoveTo(Rect.Left,Rect.Bottom);
table_2.Canvas.LineTo(Rect.Right, Rect.Bottom);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c