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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-46599
pathfinder
2003-04-23 16:50
2003.05.15
Как загнать картинку в BLOB используя IBX?


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


6-46882
Dudao++
2003-03-14 09:47
2003.05.15
Линки в html доках


8-46849
maxelrod
2003-02-05 02:30
2003.05.15
паспорт wav-mp3/mp4...


3-46602
mic_2000
2003-04-23 17:52
2003.05.15
Как можно в IB6 из 0 сделать NULL?