Главная страница
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.012 c
8-46854
Axis_of_Evil
2003-02-05 09:42
2003.05.15
Таймер, блин.


1-46830
BoTToN!k
2003-04-29 12:23
2003.05.15
Помогите c компонентов в Run_time


3-46581
Инна
2003-04-22 23:45
2003.05.15
DBComboBox не работает...


1-46816
Zew
2003-05-02 13:23
2003.05.15
Поиск в текстовом редакторе!


14-46906
Goodmin
2003-04-24 18:41
2003.05.15
Противовес