Pregunta: | 3693 - OBJETOS OLE EN RICHTEXTBOX |
Autor: | Jorge Garay |
Tengo un control Rich TextBox al cual le pego imagenes bmp previamente almacenadas en el portapapeles. Estas aparecen luego en la coleccion OLEObjects del control. El problema es al seleccionar una imagen en el control, cuando quiero saber a que objeto de la coleccion OLEObjects corresponde. No encuentro la forma! Alguien tiene una solucion? Muchas gracias. |
Respuesta: | José Ariel Limandri |
hE aqui la solucion a tu problema:
' pone en un formulario un RichText y un command Button '(Asegurate de instalar el service pack 4 de VStudio 'ya que el RichTXT tiene algunos problemitas Option Explicit Private Sub Command1_Click() Dim ST As Long Dim Pos As Long Dim Pos2 As Long Dim ObjName As String With RichTextBox1 Pos = InStr(1, .SelRTF, "}\objw", vbTextCompare) If Pos > 0 Then 'Objeto Seleccionado Pos2 = InStr(Pos + 3, .SelRTF, "\", vbTextCompare) ObjName = Mid(.SelRTF, Pos + 2, Pos2 - Pos - 2) ' tengo el nombre del objeto seleccionado. ' Primero busco la posicion absoluta de este y luego 'Busco cuantos Objetos hay antes del mismo Pos = InStr(1, .TextRTF, ObjName, vbTextCompare) MsgBox "Objeto Seleccionado: " & UBound(Split(Left(.TextRTF, Pos), "OBJDATA", , vbTextCompare)) End If End With End Sub EXPLICACION LOGICA (POR SI NO TE FUNCIONA): Lo que hace el codigo es buscar (en el texto seleccionado) el nombre del objeto (si es que hay uno) Luego busca en todo el texto la posicion del objeto Luego busca en Todo el texto(hasta la posicion del objeto seleccionado) cuantos otros objetos hay. y ete aqui que este nro es el nro correspondiente a oleobjects. Suerte. y cualquier dudad mandame un mail (no te olvides de mandarme la pregunta porque muchas veces no me acuerdo los nombre de todas las personas a las que respondo). |