Показать сообщение отдельно
Старый 21.09.2007, 08:09   #5  
kBace4ka is offline
kBace4ka
Участник
 
8 / 10 (1) +
Регистрация: 16.07.2007
Адрес: Челябинск
Бьюсь со вставкой из буфера обмена, не получается. Подскажите как реализовать.
Код на бейсике:
Код:
Set ServiceManager = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ServiceManager.createInstance ("com.sun.star.frame.Desktop")
Dim arr() As Variant
Set Document=Desktop.LoadComponentFromURL("private:factory/swriter", "_blank", 0, arr())

Set oClip=ServiceManager.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard")
Set oClipContents=oClip.getContents()
oTypes=oClipContents.getTransferDataFlavors()
	
Сall oText.insertString(oCursor,oClipContents.getTransferData(oTypes(0)),False)
Мой код:
Код:
    Array arr = new Array(Types::String);
    COMVariant arg;
    COM OpenOffice, Desktop, Document, oClip, oClipContents;
    COM Sheets, Sheet, Cell, oCursor;
    COMVariant oTypes;
;
    OpenOffice = new Com("com.sun.star.ServiceManager");
    Desktop = OpenOffice.createInstance("com.sun.star.frame.Desktop");
    arg = COMVariant::createFromArray(arr);

    Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg);

    oClip = OpenOffice.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard");

    oClipContents = oClip.getContents();

    oTypes = oClipContents.getTransferDataFlavors();

    Sheets   = Document.getSheets();
    Sheet    = Sheets.getByIndex(0);
    Cell = Sheet.getCellByPosition(2,2);

    oCursor = Cell.createTextCursor();
    oCursor.gotoStart(false);

    Cell.insertString(oCursor, oClipContents.getTransferData(oTypes[1]), False);
Проблема с последней строкой, как сделать что бы брался oTypes[1] ?