![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приведение типов [D7, XP]
webpauk © (2010-01-19 14:37:00)Могую ли я в конструкцию TStringList.AddObject('Text', fObj) как-то запихнуть fObj=Pointer(Point(x, y))?
Демо (2010-01-19 17:45:00) [1]
> webpauk © (19.01.10 14:37)
> Могую ли я в конструкцию TStringList.AddObject('Text', fObj)
> как-то запихнуть fObj=Pointer(Point(x, y))?
TPoint - обычная структура, поэтому после небольших изменений в описании и методах работы с ним можно. Почему нет?
PPoint=^TPoint
var
pp: PPoint;
begin
New(pp);
StringList.AddObject('Text', pp);
//Работаем
//Здесь освобождаем память:
Dispose(PPoint(StringList.Data[i]));
Jeer (2010-01-19 15:31:00) [2]
> AddObject('Text', fObj)
Сюда можно "запихнуть" любое 32-х разрядное число.
Чем оно будет являться - решать тебе.
Это может быть указатель, это может быть композитная структура, например 16-ти разрядные координаты, это может быть число в плавающем формате и т.п.
oxffff (2010-01-19 14:59:00) [3]
> webpauk © (19.01.10 14:37)
> Могую ли я в конструкцию TStringList.AddObject('Text', fObj)
> как-то запихнуть fObj=Pointer(Point(x, y))?
Не понятно, что ты хочешь запихнуть указатель или значение.
В любом случае можно. Используй аналог boxing из .NET с детерминированным освобождением.
Юрий Зотов (2010-01-19 14:55:00) [4]Но если использовать PointToSmallPoint, то может и получиться.
webpauk (2010-01-19 14:46:00) [5]спсб
Игорь Шевченко (2010-01-19 14:45:00) [6]не можешь