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

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

31.07.2015, 11:34. Показов 2273. Ответов 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
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
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
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru