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

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

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

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

Добавлено через 15 часов 11 минут
в переменой должно быть четыре значения или две пары (x, y).
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
03.08.2015, 22:56  [ТС] 7
И есть вот такие методы еще
Миниатюры
Как получить данные из объекта?  
0
7 / 7 / 6
Регистрация: 18.03.2012
Сообщений: 43
05.08.2015, 17:34  [ТС] 8
Вот еще описание из 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  [ТС] 9
У меня получилось передать новый размер фрейму. получился 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  [ТС] 10
Как удалить тему? все равно никто не отвечает...
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru