7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43

Как получить данные из объекта?

31.07.2015, 11:34. Показов 2258. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подключаю файл *.tlb, далее создаю объект "Frame", он создается с параметрами по умолчанию, далее хочу изменить его размер или получить размер, но никак не получается. У объекта "Frame" есть метод "GetGeometricBounds" но не знаю как им воспользоваться.
Подскажите как мне им воспользоваться?

Вот кусок кода из tlb-файла где написано про эту функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma implementation_key(128)
inline void MyApplication::Frame::PutGeometricBounds ( const _variant_t & _arg1 ) {
    _com_dispatch_method(this, 0x67626e64, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, 
        L"\x000c", &_arg1);
}
 
#pragma implementation_key(129)
inline _variant_t MyApplication::Frame::GetGeometricBounds ( ) {
    VARIANT _result;
    VariantInit(&_result);
    _com_dispatch_method(this, 0x67626e64, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&_result, NULL);
    return _variant_t(_result, false);
}
.... 
.... 
 
Frame : IDispatch
{
    // Property data
 
    __declspec(property(get=GetGeometricBounds,put=PutGeometricBounds))
    _variant_t GeometricBounds;
...
...
 
 // Methods: 
 
void PutGeometricBounds (
        const _variant_t & _arg1 );
    _variant_t GetGeometricBounds ( );
....
....
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.07.2015, 11:34
Ответы с готовыми решениями:

Как получить библиотеку типа *.tlb из COM-объекта *.exe
Здравствуйте! =) Прошу подсказку у экспертов в COM`е. Можно ли сгенерировать библиотеку типа Tratata.tlb по имеющемуся...

Получить данные объекта, выбранного в селекторе
Есть сущность Products, у каждого продукта есть тайтл, цена. В контролере продукта я создал метод "калькулятор". Во вьюхе...

Как вывести данные из объекта?
Есть объект config::gi() , он содержит: Config Object ( => Array ( => Array ( ...

9
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
02.08.2015, 17:28  [ТС]
Вот так я обращаюсь к первому фрейму:
C++
1
FramePtr myFrame = myDoc->Frames->Item[1L];
А вот как передать ему параметры размера я не знаю, это параметр "GeometricBounds". кажется он типа _variant_t.
Хоть какие мысли есть?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
02.08.2015, 22:02
Ну, получить-то размер - просто:
C++
1
VARIANT gb = FramePtr myFrame = myDoc->Frames->Item[1L]->GeometricBounds;
А вот потом - смотри в отладчике, что именно тебе вернулось, в каком виде.
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
02.08.2015, 22:26  [ТС]
Я уже так пробовал. Много чего возвращает, но ничего похожего на размер нет. Я просто не знаю куда дальше копать. Видимо гдето там есть этот размер, но нужно както его привести в человеческий вид.
вот скриншот
Миниатюры
Как получить данные из объекта?  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
02.08.2015, 22:57
Ну написано же, что vt = 5, это VT_R8 (an 8-byte IEEE floating-point number), надо думать как из этого значения вытащить размер.
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
03.08.2015, 14:18  [ТС]
Я начинающий( не знаю как работать с этим типом.
Что мне дальше делать? плиз

Добавлено через 15 часов 11 минут
в переменой должно быть четыре значения или две пары (x, y).
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
03.08.2015, 22:56  [ТС]
И есть вот такие методы еще
Миниатюры
Как получить данные из объекта?  
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
05.08.2015, 17:34  [ТС]
Вот еще описание из TLB файла:
Property GeometricBounds As Variant
The bounds of the TextFrame excluding the stroke width, in the format [y1, x1, y2, x2], which give the coordinates of the top-left and bottom-right corners of the bounding box. as Array of 4 Units (Doubles or Strings)

Подскажите как мне получить или задать эти значения.
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
10.08.2015, 14:16  [ТС]
У меня получилось передать новый размер фрейму. получился SAFEARRAY обернутый VARIANTом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    double mySize[4] = {12.7, 12.7, 66.7, 83.2};
    SAFEARRAY * Bound;
    VARIANT Array;
    Array.vt =   VT_ARRAY | VT_R8;
    Bound = SafeArrayCreateVector(VT_R8, 1, 4); 
    for (int i = 0; i < 4; i++)
    {
        long index = i + 1;
        SafeArrayPutElement(Bound, &index, &mySize[i]); 
    }
    Array.parray = Bound;
 
    myTextFrame->GeometricBounds = Array;
А как получить эти значения обратно или вывести в консоль?
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
11.08.2015, 15:18  [ТС]
Как удалить тему? все равно никто не отвечает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2015, 15:18
Помогаю со студенческими работами здесь

Как вытащить данные из объекта?
Доброго времени суток! Есть структура граф. Есть два представления Л и М граф. В конструкторе графа создается объект абстрактного класса,...

Как вытащить данные из ole объекта?
в каждой стоке таблицы зашит объект ole (рисунок формата bmp), как можно можно сохранить этот рисунок на жесткий диск в виде файла формата...

Как получить размер объекта
Доброго времени суток вопрос: как можно получить размер объекта? к примеру есть 3d-объект - прямоугольник, нужно узнать его длину...

Как вернуть массив, и как неявно получить атрибут объекта?
хочу спросить как из функции вернуть массив int g(void){ int a; //как-то его заполнить return a; } массив...

Как прочитать все данные из объекта Session?
у меня asp-страниц около 20 и в каждой из них есть по 2-3 объекта Session, но вот беда - не помню их все наизусть :( Можно ли как-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru