Консультация № 65129
01.12.2006, 17:28
0.00 руб.
0 1 1
Здравствуйте! Подскажите пожалуйста: Делаю PreView рисунка. Im:TImage создаю динамически и кладу его на Panel1.
Вначале закрашиваю Im серым цветом на всю Panel1, а затем, с учетом масштабирования пытаюсь вывести его вновь, но уже нового размера и закрашенным в белый цвет(т.е. белый лист на сером фоне). Здесь происходит накладывание цветов. Может кто скажет где я вывожу неправильно?
Заранее спасибо.

Приложение:
Im := TImage.Create(Panel1); Im.Parent := Panel1; Im.AutoSize := False; Im.Stretch := False; //закрашивание в серый цвет на всей площади панели Im.Width := Panel1.Width; Im.Height := Panel1.Height; Im.Canvas.Brush.Color := clBtnFace; Im.Canvas.FillRect(Rect(0,0,Im.Width,Im.Height)); Im.Width := trunc(Panel1.Width*koef_scale); Im.Height := trunc(Panel1.Height*koef_scale); // находим координаты верхней правой и нижней левой точек вывода Im x1 := trunc(p.width/2)-trunc(Im.Width/2); y1 := trunc(p.Height/2)-trunc(Im.Height/2); x2 := trunc(p.width/2)+trunc(Im.Width/2); y2 := trunc(p.Height/2)+trunc(Im.Height/2); PreRect := Rect(x1,y1,x2,y2); // закрашивание в белый нужного прямоугольника Im.Canvas.Brush.Color := clWhite; Im.Canvas.FillRect(PreRect); Im.Canvas.Pen.Color := clBlack; Im.Canvas.Rectangle(PreRect);

Обсуждение

Неизвестный
01.12.2006, 17:47
общий
это ответ
Здравствуйте, Luchiki!
Используйте свойство
Canvas.Pen.Mode:=pmCopy; или pmNop;
Форма ответа