Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

может кто по C++Builder подскажет? насчет типа Variant


olden69 ©   (2002-05-15 16:58:00) 

все-таки Variant - VCLный тип
есть процедура
внутри нее следующий код

wchar_t* FName = new wchar_t[bFont->Name.WideCharBufSize()] ;
bFont->Name.WideChar(FName,bFont->Name.WideCharBufSize()));
vFont->Name.WideChar(FName,vFont->Name.WideCharBufSize());
Variant FontName(FName); //Variant::Variant(wchar_t*)
//задаем имя шрифта для ячеек Excel
bRange.OlePropertyGet("Font").OlePropertySet("Name", FontName);
delete FName;

и при выходе из процедуры ругается. Такое ощущение, что пытается при выходе удалить объект, который уже удален. И похоже, что проблема именно с Variant FontName. Если попробовать сделать FontName.Clear() сразу после OlePropertySet, то выскочит та же ошибка. Если объявить "Variant FontName(&FName)" то проблема уходит, но OlePropertySet("Name", FontName) не может обработать FontName, ругается на невозможность его интерпретации.


Дмитрий Баранов   (2002-05-15 17:10:00) [1]

С билдером я не работал, но может, попробовать именно MS? (VARIANT или _variant_t) ?
(тип VARIANT требует во-первых инициализации (VariantInit), во-вторых, надо явно указать тип данных (VT_INT, VT_BSTR и т.п.))


Наверх

Титульная страница Поиск, карта сайта Написать письмо