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

Вниз

CreatePolygonRgn и динамический массив   Найти похожие ветки 

 
ed   (2003-04-30 18:24) [0]

Добрый день.
Приведенный ниже пример не работает (регион не появляется):
var
P: array of TPoint;
begin
SetLength(P, 3);
P[0] := Point(0, 0);
P[1] := Point(100, 100);
P[3] := Point(0, 100);
SetWindowRgn(Handle, CreatePolygonRgn(P, Length(P), WINDING), True);
.....

Причем, если использовать статический массив, то все OK. Может подскажете, как быть, если количество точек "полигона" заранее не известно.
Заранее спасибо.


 
default   (2003-04-30 18:58) [1]

var
P: array of TPoint;
begin
SetLength(P, 4);
P[0] := Point(0, 0);
P[1] := Point(100, 100);
P[2] := Point(0, 100);
P[3] := P[0];
SetWindowRgn(Handle, CreatePolygonRgn(P, 4, WINDING), True);




 
bxMax   (2003-04-30 19:04) [2]

попробуй так:
var
P: ^TPoint;
begin
getmem(P, 3*sizeof(tpoint));
P^ := Point(0, 0);
(P+sizeof(TPoint))^ := Point(100, 100);
(P+sizeof(TPoint)*2)^ := Point(0, 100);
SetWindowRgn(Handle, CreatePolygonRgn(P, Length(P), WINDING), True);
freemem(p);


 
default   (2003-04-30 19:08) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
MP: Array of TPoint;
HR: HRGN;
begin

SetLength(MP, 3);
MP[0] := Point(0, 0);
MP[1] := Point(100, 100);
MP[2] := Point(0, 100);
HR := CreatePolygonRgn(MP[0], 3, WINDING);
SetWindowRgn(Handle, HR, True);
DeleteObject(HR)

end;

вот так надо


 
PVOzerski   (2003-04-30 19:12) [4]

А суть дела в том, что стандартный (с т. зр. поздних версий Delphi, но не WinAPI) динамический массив как переменная - это лишь указатель на довольно сложную структуру (в одномерном случае собственно массив как блок данных доступен по адресу 0-го элемента).



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

Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
14-46974
TheoS
2003-04-27 01:21
2003.05.15
Проблемма с папкой в Windows XP


1-46679
DREMcas_x
2003-04-30 13:53
2003.05.15
Пример цикла


14-46933
Lola
2003-04-25 15:11
2003.05.15
А где ветка Думкина про детей?


4-47039
DeadMeat
2003-03-14 16:59
2003.05.15
Запуск приложений из сервиса


1-46742
Mir
2003-05-05 06:06
2003.05.15
Как в Image размножить рисунок?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский