Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

OffsetRgn и TCanvas   Найти похожие ветки 

 
fog   (2006-10-26 03:22) [0]

ДВС! Помогите найти ошибку в тест-программе, плз.


procedure TForm1.MyDraw(const Cs: TCanvas);
begin
Cs.Ellipse(0, 0, 110, 110);
end;

procedure TForm1.Button1lick(Sender: TObject);
var i, j: integer;
   p: TPoint;
   r: TRect;
   hr: hRgn;
begin
hr := CreateRectRgn(0, 0, 100, 100);
SelectClipRgn(Canvas.Handle, hr);
SetWindowOrgEx(Canvas.Handle, 0, 0, @p);
for j := 1 to 5 do
begin
 MyDraw(Canvas);
 i := OffsetRgn(Canvas.Handle, -j*100, 0);
//i = 0 - область не смещается
 OffsetWindowOrgEx(Canvas.Handle, -j*100, 0, @p);
 Canvas.Pen.Color := clRed shl j*10;
end;
DeleteObject(hr);
end;


Замысел - последовательно отрисовать несколько однотипных процедур (MyDraw) в одном DC с отсечением - чтобы исключить проверку на выпадение точек за пределы области.

Просьба рассматривать данный вопрос AS IS. (без вариантов BitBlt, TBitmap  и т.д. и т.п.)


 
Gero ©   (2006-10-26 03:25) [1]

> [0] fog   (26.10.06 03:22)

Синтаксических ошибок нет.


 
Ketmar ©   (2006-10-26 04:17) [2]

OffsetRgn(), F1. и долго думать, почему HDC -- это не HRGN.


 
fog   (2006-10-26 21:09) [3]

Изменил код на

OffsetRgn(hr, -100, 0);
OffsetWindowOrgEx(Canvas.Handle, -100, 0, @p);

Эффект - 0. Рисует только один круг.

OffsetRgn работает относительно Viewport или Window?


 
Ketmar ©   (2006-10-26 21:28) [4]

>[3] fog 26-Oct-2006, 21:09
насколько мне помнится, менять надо что-то одно: или регион, или начало координат. проверять лень, сам проверь.


 
DiamondShark ©   (2006-10-26 23:08) [5]

регион двигать не надо


 
Ketmar ©   (2006-10-26 23:14) [6]

>[5] DiamondShark(c) 26-Oct-2006, 23:08
>регион двигать не надо
ну да. я примерно это и имел в виду. оставил автору для экспериментов. %-)


 
fog   (2006-10-26 23:32) [7]

Регион двигать надо.

 OffsetClipRgn(Canvas.Handle, 100, 0);
 OffsetViewportOrgEx(Canvas.Handle, 100, 0, p);  


Осталось только выяснить как это стелать через OffsetWindowOrgEx.


 
Ketmar ©   (2006-10-26 23:43) [8]

ты разницу между region и clipping region улавливаешь?


 
Ketmar ©   (2006-10-26 23:44) [9]

что-то у меня подозрение, что ты вместо поискать в инете описания пытаешься ненаучным тыком всё понять. нет, это тоже способ, но муторный. иногда проще поискать. %-)


 
Ketmar ©   (2006-10-26 23:45) [10]

кстати, а фэньшуй... э... фэньхоа... э... о! Feng Yuan об этом, часом, не писал?


 
fog   (2006-10-27 00:19) [11]

2 Ketmar>
"Профессионал - это тот, кто не только знает, а еще умеет объяснить."

Не лень писать голимые коменты?


 
Ketmar ©   (2006-10-27 00:30) [12]

>[11] fog 27-Oct-2006, 00:19
>Не лень писать голимые коменты?
ясно. ещё один чукча. в сад.



Страницы: 1 вся ветка

Текущий архив: 2006.11.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.071 c
15-1161983461
unknown
2006-10-28 01:11
2006.11.12
Clawfinger


2-1161984067
aleko
2006-10-28 01:21
2006.11.12
работа с Simple MAPI


2-1161962845
чел
2006-10-27 19:27
2006.11.12
не отображается первичный ключ


2-1161943090
markers
2006-10-27 13:58
2006.11.12
Как проверить существования объекта?


15-1161457392
Витян
2006-10-21 23:03
2006.11.12
Зацените, пожалуйста! :)