Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Dynamic Array


__ALX__ ©   (2003-03-10 23:58:00) 

Господа,
помогите.

Имеетя список (TList) в котором хранятся указатели на Tpoint, далее имеется номер первой точки фигуры, и количество точек.

Необходимо нарисовать регион (и закрасить его). Например: 1-ая точка фигуры - 120-ый элемент листа, количество точек полигона 6 (т.е. 120,121,122,123,124,125 элемент листа). Для рисования полигона необходимо указать массив с точками, и кол-во точек. Кол-во известно, а вот массив... Неизвестно заранее скока точек 5, 10 ,30...

Чувствую что необходимо будет использовать динамический массив... но как? В Дельфи (в хелпе) написано что так array of TBaseType.. но ведь tpoint - не Base.


__ALX__   (2003-03-11 22:33:00) [1]

aga

ya obichno pol"zuyus WinAPI

polygon(Form1.canvas.handle,da[0],4);

toka ya pochemu to dumal, chto esli postavit" prosto

polygon(Form1.canvas.handle,da,4) , eto i budet ssilka na 1-iy element massiva...


MBo   (2003-03-11 16:36:00) [2]

В этом случае оно само определяется по high(da)
Хелп-то читал?


__ALX__   (2003-03-11 16:35:00) [3]

canvas.Polygon(da);

a kolichestv?


MBo   (2003-03-11 15:55:00) [4]

или так
polygon(Form1.canvas.handle,da[0],4);
или так
canvas.Polygon(da);


__ALX__   (2003-03-11 15:45:00) [5]

k primeru

var
list:tlist;
pt:^Tpoint;
da:array of tpoint;
begin
list:=tlist.create;
new(pt);
pt^.x:=100;
pt^.y:=120;
list.add(pt);
//nu i tak dalee, zapolnyayem list, dopustim tam 4 znacheniya
setlength(da,4);
pt:=list.items[0];
da[0].x:=pt^.x;
da[0].y:=pt^.y;
//i tak dalee
polygon(Form1.canvas.handle,da,4);
end;


MBo   (2003-03-11 13:52:00) [6]

покажи минимальный код


__Alx__   (2003-03-11 13:28:00) [7]

Spasibo MBo,
ya tak proboval, no ne poluchaetsa... oshibok ne vidayot, no risuet bileberdu


MBo   (2003-03-11 06:14:00) [8]

var Pts:array of TPoint;

SetLength(Pts, число точек);
Pts[0]:=PPoint(List[120])^;
... и т.д. заполнение массива
Polygon(Pts);


array of TBaseType - имеется в виду, что тип элементов любой


Наверх

Титульная страница Поиск, карта сайта Написать письмо