Пара вопросов по портированию

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Пара вопросов по портированию

Сообщение Attid » 30.10.2007 19:24:53

в общем из дельфи перетаскиваю проэктик есть следующие проблемки :

Код: Выделить всё
type
  TSymbol = Byte;

/****/
function TRList.GetSymbol(ix: Integer): TSymbol;
begin
  Result := TSymbol(Objects[ix]);
end;
/****/

Error: Illegal type conversion: "TObject" to "Byte"


кто виноват и как выкрутится.

ЗЫ. зачем и почему так сделано я не знаю, мне надо портировать с минимальным изменением.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 30.10.2007 20:03:20

а что это такое - Objects[ix]?
если сождежит Pointer-ы (судя по ошибке)
то приведи их сначала к типу Integer - это будет совпадать по размеру
а потом от integer-a бери младший байт -
но вобщей такой код - наивернейший путь к глюкам
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение shade » 30.10.2007 21:55:17

Наверное надежнее к PtrUInt:
Result := PtrUInt(Objects[ix]);
Уж к байту компилятор сам должен додуматься привести...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Attid » 31.10.2007 13:10:09

он баутики содержит, циферки.
сделал пока так

Код: Выделить всё
Result := TSymbol(Integer(Objects[ix]));


вроде работает.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44

Рейтинг@Mail.ru