1С, Activex и Delphi: Доступ к элементу "Картинка".

Тема в разделе "Delphi - СОМ", создана пользователем minister2007, 16 сен 2008.

Статус темы:
Закрыта.
  1. minister2007

    minister2007 Гость

    Помогите разобраться:

    Создал на Delphi-7 ActiveX. Поместил его в 1Cv8 на форму.
    Из модуля формы 1Сv8 вызываю мною созданный в ActiveX метод:

    ЭлементыФормы.ЭлементУправления1.InfoPicture(ЭлементыФормы.ПолеКартинки1.Картинк
    а.ПолучитьДвоичныеДанные());

    В Delphi метод объявил так:

    procedure InfoPicture(vParam :Variant);

    Мне надо обратиться к графическому содержимому Картинки (а'ля Canvas).

    Тип по i := VarType(vBin); получается - varDispatch - "Ссылка на Automation-объект (интерфейсный указатель IDispatch)".

    Мои попытки преобразовать Variant к типу TBitmap не увенчались успехом.
    Не знаю как к нему, этому vParam, подступиться. Кто подскажет?
     
  2. minister2007

    minister2007 Гость

    Продвинулся так:
    в 1С добавил предварительную сериализацию. Получилось вот что:

    // Сериализация объекта: выгрузка объекта в XML строку
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    ЗаписатьXML(ЗаписьXML,ЭлементыФормы.ОбъектИзображение.Картинка.ПолучитьДвоичныеД
    анные());

    ЭлементыФормы.лементУправления1.InfoPicture(ЗаписьXML.Закрыть());Далее в Delphi:

    Декодирую входные данные с помощью своей функции:

    ImageData := decodeBase64(vParam); // array of Byte;Теперь у меня в переменной - байт-массив Картинки. Проверял - вылитый BMP-файл.

    Теперь уперся, как обратиться к этой переменной, чтобы вытащить из нее Canvas или привести к типу TBitmap.

    Кто подскажет, как загрузить BMP-файл из переменной?
     
  3. zubr

    zubr Гость

    Передавай в переменной хендл канваса или битмапа.
    Затем, к примеру, делаешь так:
    Код (Text):
    var
    Canvas:TCanvas;

    Canvas:=TCanvas.Create;
    Canvas.Handle:=HandleFromActivX;
    Ну или имея хендл битмапа делаешь BitBlt.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей