Страница 1 из 1

Как правильно? (склеивание строки и числа )

СообщениеДобавлено: Ср апр 29, 2009 11:28 am
hoeo9
Есть переменная
cat_subtype; в ней лежит число
sys.Message (0,cat_subtype); выдает в окно это число, например, 39

нужно склеить строку
мне же выдает только uf2974 =undefined
пробовал кучу конструкций не работает
Код: Выделить всё
flt="uf2974 ="+cat_subtype;
flt="uf2974 ="+Value(cat_subtype);
flt="uf2974 ="+Value("cat_subtype");

подскажите правильный вариант а?

Re: Как правильно? (склеивание строки и числа )

СообщениеДобавлено: Ср апр 29, 2009 12:02 pm
anton
Очень важно откуда ты значение cat_subtype получаешь. Стандартные методы aObject.Value, aDocument.TableValue возвращают QVariant в котором лежит Q_ULLONG, а QSA не знает, что такое Q_ULLONG, это баг ананаса, я о нём 2 раза писал в старый bugtarcker, но меня слушать почему-то не хотят. Есть один метод через задний проход, тупой и очень тормозной, но рабочий:
Код: Выделить всё
smpl = new AExtExample;
smpl.lastMessage = cat_subtype;
cat_subtype = smpl.lastMessage;

вот после этого можешь преобразовывать в число. Ещё раз повторяю: метод очень хреновый и тормозной. Вместо AExtExample, можно использовать любой класс, у которого есть свойства типа QString, но я кроме aExtExample из невизульного ничего не нашёл. Также экземпляр AExtExample можно создать в глобальном модуле один раз, при старте, и везде его использовать, но надо учитывать, что кроме всего прочего эта пакость посылает сигнал event раз в 5 секунд, так что если используется on_event, такие сообщения надо обрезать.

Re: Как правильно? (склеивание строки и числа )

СообщениеДобавлено: Ср апр 29, 2009 12:08 pm
anton
Да, возможно есть другие более изящные способы, стоит поискать.