BCB6 не может привести от AnsiString к TObject

У меня проблема с преобразованием строковой переменной в TObject,

У меня есть запрос, который возвращает мне два столбца. В первом столбце у меня есть varchar значения, которые я перевожу в строки, а во втором столбце у меня есть int ценности.

Я хочу заполнить ComboBox следующим образом:

cbx1-> AddItem (DataSet1->DataSet->Fields->Field[0]->AsString, (TObject *) (int) DataSet1->DataSet->Fields->Field[1];

Поскольку я ссылаюсь на второе значение типа int, я получаю несколько кустов, например, xD и т. Д.

При попытке преобразовать это значение в строку, например:

String temp = IntToStr (DataSet1->DataSet->Fields->Field[1]);
cbx1-> AddItem (DataSet1->DataSet->Fields->Field[0]->AsString, (TObject *) temp;

Я получаю сообщение об ошибке:

не может привести от 'AnsiString' к 'TObject'

Я не знаю, что еще я могу сделать, чтобы преобразовать это значение.

1 ответ

Вы не можете разыграть AnsiString значение для TObject* указатель. Вы можете привести только целочисленное значение или значение указателя к TObject* указатель. AnsiString не из тех.

Вы не получаете int значение из 2-го поля правильно в любом случае. Field[1] это указатель на фактический TField объект в Fields коллекция. Этот указатель - то, что вы пытаетесь сохранить в вашем ComboBox, а НЕ int значение, которое TField представляет собой.

Вам нужно позвонить Fields[1]->AsInteger чтобы получить int значение 2-го поля, аналогично тому, как вы используете Fields[0]->AsString чтобы получить строковое значение 1-го поля:

cbx1->AddItem(
    DataSet1->DataSet->Fields->Field[0]->AsString,
    (TObject*) DataSet1->DataSet->Fields->Field[1]->AsInteger
    // in C++, using reinterpret_cast is preferred over C-style casting:
    // reinterpret_cast<TObject*>(DataSet1->DataSet->Fields->Field[1]->AsInteger)
);

Это ничем не отличается от кода в вашем предыдущем вопросе:

cbx1->AddItem("one",(TObject*)1);

Вы сейчас просто размещаете литералы "one" а также 1 с переменными времени выполнения эквивалентных типов.

Другие вопросы по тегам