Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
6-1151325940
N
2006-06-26 16:45
2006.11.12
Неприятности с IdHTTPServer-ом


15-1160908524
psa247
2006-10-15 14:35
2006.11.12
Internet Connection Shared


15-1161329175
Maximaxi
2006-10-20 11:26
2006.11.12
Скачать Delphi 4


15-1161504536
Чародей
2006-10-22 12:08
2006.11.12
Поиск похожих jpg


1-1159879507
dreamse
2006-10-03 16:45
2006.11.12
Отображение иконок с альфа каналом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский