Форум: "Начинающим";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
ВнизПроблема с отрисовкой. Найти похожие ветки
← →
Марина (2006-06-12 16:57) [0]В программе есть PageControl с двумя вкладками, на второй вкладке расположен PaintBox, в нем я рисую битмап методом :
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile("1.bmp");
PaintBox1.Canvas.Draw(0, 0, Bitmap);
Bitmap.Free;
end;
Почему, когда я рисую на канвасе PaintBox в событии OnPaint формы (как вроде бы и следует делать), то рисунок стирается, стоит перелистнуть вкладку? Как рисовать так, чтобы рисунок сохранялся?
И еще, если не трудно, скажите можно ли рисовать так, чтобы один рисунок был постоянным, а дргие, рисуемые поверх него стирались при перелистывании страницы? Если да - то как?
-------
И еще, как рисовать на панели, ведь у него нету свойства Канвас ?
Спасибо.
← →
Rial © (2006-06-12 17:46) [1]А у PaintBox ведь есть и свой OnPaint.
Для панели:
Var DC:HDC;
...
DC:=GetDC(Panel.Handle);
...
FillRect(DC,...);
и т.п.
...
ReleaseDC(Panel.Handle,DC);
DeleteDC(DC);
> И еще, если не трудно, скажите можно ли рисовать так, чтобы
> один рисунок был постоянным, а дргие, рисуемые поверх него
> стирались при перелистывании страницы? Если да - то как?
>
Не понял.
← →
Марина (2006-06-12 18:14) [2]Rial спасибо:)
> Не понял.
Вобщем представте, у вас нарисована картинка на форме. В моем случае сотовый телефон. Картинка постоянная, то есть нестираемая. Сверху на этой картинке вы рисуете стрелочки красного цвета указывающие на какую бы то нибыло кнопку сотового, или его часть. Так вот, меня интересует как можно сделать так, чтобы эти стрелочки в последствие можно было стереть оставив в целости и сохранности картинку самого сотового.
Как это сделать ?
И еще, если не трудно, покажите пожалуйста простой примерчик рисования например крестика или стрелочки на канвасе формы. Если можно. то красного цвета. А то я никак не могу разобраться с этими
MoveTo(y,x);
LineTo(y,x);
Не получается у меня ими нарисовать стрелочку или крестик :((
← →
Rial © (2006-06-12 18:30) [3]2.
Крестик красного цвета
procedure TForm1.Krestik(Const X,Y,Size:Integer);//Size - размер крестика
begin
With Canvas do begin
Pen.Width:=4;//Толщина крестика
Pen.Color:=clRed;
MoveTo(X-Size,Y-Size);
LineTo(X+Size,X+Size);
MoveTo(X-Size,Y+Size);
LineTo(X+Size,Y-Size);
end;
end;
1.
В лоб стереть крестики не получиться.
Самый простой вариант:
а)Делаем копию нашего телефона в TBitmap.
Создаем также еще один битмап, на нем тоже рисуемм этот телефон.
б)По мере необходимости рисуем на второй битмап первый,
а также все необходимые крестики.
Выводим на экран только битмап.
Рисовать на битмапе можно элементарно:
Bitmap.Canvas вместо Canvas (это то же, что и Form1.Canvas);
Т.о. если нужно убрать крестик - перерисовываем 1-й на 2-й битмап, а
также все крестики кроме злосчастного.
Такой способ вывода одного только битмапа по OnPaint сильно
увеличит быстродействие, если, конечно, эти крестики не мигают как угарелые.
в)Не забываем удалить обе картинки.
← →
Марина (2006-06-12 19:09) [4]Rial
Спасибо!
Спас! :-*
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c