Страница 1 из 1
Ошибка компиляции TObject в Combobox
Добавлено: 08.01.2024 20:39:04
dalfy
После установки Lazarus 3.0 перестал компилироваться код
Код: Выделить всё
ComboBox1.AddItem(SQLQuery1.FieldByName('NAME').AsString,
TObject(SQLQuery1.FieldByName('ID').AsInteger));
Говорит, мол, TObect и integer не совместимы. Хотя в версии 3.0 RC2 всё компилировалось и запускалось.
В чём может быть дело? В опубликованных изменениях к версии 3.0 ничего не говорится.
Re: Ошибка компиляции TObject в Combobox
Добавлено: 08.01.2024 20:55:35
Снег Север
Предполагаю, что это - один из вариантов частой проблемы фрипаскаля на 64х битных ОС. Попробуйте привести ваш integer к int64.
Re: Ошибка компиляции TObject в Combobox
Добавлено: 09.01.2024 01:32:36
Alex2013
Код: Выделить всё
Type
tSR_Record=Record
Name:String;
BaseUrl:String;
MirorList:String;
PageList :String;
NfScript:String;
FCurent:Boolean;
end;
pSR_Record=^tSR_Record;
Var SR:pSR_Record;
...
New (SR);
...
ListBox1.AddItem( SR^.Name,TObject(SR));
...
Так работает всюду.

То есть нужно использовать ссылку на переменную
Re: Ошибка компиляции TObject в Combobox
Добавлено: 09.01.2024 09:33:23
Alexx2000
Код: Выделить всё
TObject(PtrInt(SQLQuery1.FieldByName('ID').AsInteger))
Re: Ошибка компиляции TObject в Combobox
Добавлено: 09.01.2024 18:55:18
dalfy
Alex2013 писал(а):New (SR);
Что-то не получилось с простым integer.
Это сработало:
Снег Север писал(а):привести ваш integer к int64
и
Alexx2000 писал(а):PtrInt(...)
одно и тоже, но PtrInt более универсален, т.к. зависит от компилятора (определяется дефайнами).
Благодарю за помощь!