Pascal 7 & Objects

       

Вывод сохраненной графики


-----------------------------------------------------------------

Теперь, когда TStepWindow сохраняет свою текущую строку, вы должны научить его по команде (этой командой является Paint) ри- совать ее. Давайте напишем для TStepWindow метод Paint, который повторяет действия WMLButtonDown, WMMouseMove и WMLButtonUp. Пу- тем итерации по набору линий Paint воссоздает картинку аналогично тому, как это делаете вы. Метод Paint имеет следующий вид (см. файл STEP07.PAS):

procedure TStepWindow.Paint(PaintDC: HDC; var PaintInfo: TPintStruct);

procedure DrawLine(P: PLine); far; begin P^.Draw(PaintDC); end;

begin Drawing^.ForEach(@DrawLine); end;

Примечание: Итерация методов описывается в Главе 19 "Наборы".

Метод Draw объекта линии для изображения каждой линии между точками также использует итератор ForEach:

procedure TLine.Draw(ADC: HDC); var First: Boolean;

procedure DrawLine(P: PLinePoint); far; begin if First then MoveTo(ADC, P^.X, P^.Y) else LineTo(ADC, P^.X, P^.Y); First := False; end;

begin First := True; LinePen^.Select(ADC); Points^.ForEach(@DrawLine); LinePen^.Delete; end; ------------------------------------------------------------------------



Содержание раздела