nesco писал(а):
вынести doDraw в наследников Мне это кажется более логичным.
nesco писал(а):
подготовить контекст к отрисовке и вызвать DrawSource родителя, правильно я понялНе совсем. DrawSource это и есть подготовка и выдача контекста перед отрисовкой (задача номер 1), а также очистка и удаление при необходимости после отрисовки (задача номер 2).
Получается, что doDraw выглядит примерно так:
#pas
begin
_prop_DrawSource(_Data, dc, 1);
... рисуем на контексте dc ...
_prop_DrawSource(_Data, dc, 2);
end;
Кстати, DrawSource могла бы выполнять и другие задачи, например трансляцию координат (тех, которые хранятся в базовом классе, либо передаваемых как параметр, который в этом случае нужно сделать безтиповым) причём с учётом установленного MapMode, который может быть различным для разных контекстов. В данном случае я имею ввиду принтер.
------------ Дoбавленo:
Можно было бы даже освободить разработчика от необходимости указывать DrawSource, если передавать этот тип как тип данных вместе с hWnd/hBitmap/hDC.