Доброго времени суток!
Нужен добрый совет...
Проблема в седующем: есть TStringGrid (вернее его потомок) и дитеныш TGraphicControl, у которого владелец этот самый TStringGrid
Идея в том, чтобы привязать второго к ячейке первого..и мышой его там двигать
Переопределил я для дитеныша TGraphicControl-а метод Paint, и он рисуется как надо, НО при манипуляциях со TStringGrid, в частности со сдвигом рабочей области сетки, он оставляет свои копии канвы на канве TStringGrid-а.
Понимаю, что придется переделывать прорисовку дитеныша TGraphicControl-а, но КАК?
Я совсем запутался в этих методах прорисовки (Paint,Refresh,Repaint,Invalidate etc )
Вот упрощенный вариант прорисовки, без всяких бантиков и прочего...
procedure TElement.Paint;
begin
inherited;
if Owner.CellRect(OwnCell.x,OwnCell.y).Left<>0 then
if (not FOnMove) then Canvas.StretchDraw(ClientRect,FPic)
else Canvas.FrameRect(ClientRect);
end;
У StringGrid-а есть событие OnTopLeftChanged... оно как раз и вызывается, когда сетка сдвигается..... Ну не ловца сообщений-же ставить!
ПОнимаю что ламер, но может у кого есть какие идеи? или посмотреть где?
--
-=ИvaN =-
Posted via RSDN NNTP Server 1.5 beta