Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > преобразование типов


Автор: iff 19.8.2012, 10:55
Можно ли легко получить тип TPoint из 2-ух переменных типа integer?
Приходится делать так:
Код

var x, y: integer; a, tmp: TPoint;
begin
  tmp.x := x;
  tmp.y := y;
  a := somefun(tmp);
end;

а хотелось бы что-то вроде:
Код

var x, y: integer; a: TPoint;
begin
  a := somefun(TPoint(X: x, Y: y));
end;

но как это правильно записать...

Автор: Frees 19.8.2012, 11:55
Код

somefun(TPoint.Create(x, y));

Автор: iff 19.8.2012, 17:52
Ошибка Object or class type required :(

Автор: Frees 19.8.2012, 18:08
описание somefun покажи.

Добавлено @ 18:17
И еще, я пробовал на XE2

Автор: northener 19.8.2012, 18:21
Цитата(Frees @  19.8.2012,  11:55 Найти цитируемый пост)
somefun(TPoint.Create(x, y));

С какой версии Дельфи у записей появились методы?

Автор: Frees 19.8.2012, 18:26
Цитата(northener @  19.8.2012,  21:21 Найти цитируемый пост)
С какой версии Дельфи у записей появились методы?

не так давно, в 2007 вот еще нет а в XE2 есть.

Автор: Чучмек 19.8.2012, 20:38
Код

v:=tpoint((int64(Y) shl 32) or X)

Автор: northener 19.8.2012, 22:28
Цитата(Чучмек @  19.8.2012,  20:38 Найти цитируемый пост)
v:=tpoint((int64(Y) shl 32) or X)

А в ХЕ2 при $A16?

Автор: bems 20.8.2012, 01:12
a := somefun(Point(x, y));

Автор: iff 20.8.2012, 16:28
bems, спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)