 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
yo mismo Invitado
|
Publicado: Mar 21 Ene, 2003 7:53 pm Asunto: LEOOO!!USO DEL OBJETO SHAPE PARA OLE Aut. Word |
|
|
Estoy tratando de encontrar algo sobre como manejar la entrada de una imagen mediante automatización ole en el Word, bueno se que hay que manejar el objeto Shape y el Método AddPicture pero no logro que funcione. Espero que alguien ( LEOOOOOOOOOOOO) me pueda hechar un mano.
Gracias |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 22 Ene, 2003 6:12 pm Asunto: |
|
|
Hola "yo mismo" (como a todos nos de por firmar así )
Para resumir, con Word abierto prueba lo siguiente:
| Código: | // Añadimos: #include<ComObj.hpp>
Variant vWord = GetActiveOleObject("Word.Application");
vWord.OlePropertyGet("Selection")
.OlePropertyGet("InlineShapes")
.OleFunction("AddPicture", "C:\\tuDir\\tuImagen.bmp"); |
Saludos:
_Leo |
|
| Volver arriba |
|
 |
yo mismo Invitado
|
Publicado: Mie 22 Ene, 2003 7:30 pm Asunto: |
|
|
" " Moitas Gracias " "
Me ha funcionado perfectamente.. te lo agradezco. |
|
| Volver arriba |
|
 |
NUNCA MAIS Invitado
|
Publicado: Jue 23 Ene, 2003 8:17 pm Asunto: OTRA MAS LEO |
|
|
Hola:
Este es un tema que a mi tb me interesa, me gustaría saber tb como se utiliza el metodo del InlineShapes Range, lo digo para colocar la imagen en la posición del documento que yo quiera.Estuve buscando por internet pero todo esta para el "puto VB "
GRACIAS A TODOS |
|
| Volver arriba |
|
 |
yo mismo Invitado
|
Publicado: Vie 24 Ene, 2003 8:44 pm Asunto: |
|
|
Hola Leo:
Mira he encontrado esta página en Chino (Nunca mejor dicho) .
void __fastcall TForm1::Button5Click(TObject £ªSender)
Variant Vshape,Vactive1,Vline;
Vactive1=V.OleFunction("ActiveDocument");
Vshape=Vactive1.OleFunction("Shapes");
// »ñ È¡ µ± ǰ »î ¶¯ ÎÄ µµ µÄShapes ¶Ô Ïó
// ʹ ÓÃShapes ¶Ô Ïó µÄAddLine ·½ ·¨ »¯ Ö± Ïß
Vline=Vshape.OleFunction("AddLine",90,80,400,80);
if (OpenDialog1 £>Execute())
// ʹ ÓÃShapes ¶Ô Ïó µÄAddPicture
·½ ·¨ ²å Èë Ö¸ ¶¨ λ ͼ
Vshape.OleFunction("AddPicture",OpenDialog1
£>FileName,50,50,80,100);
}
Intento pasarle tambien las coordenadas donde quiero poner la foto y el tamaño. Pero no me deja, he probado a poner
Variant Select=vWord.OlePropertyGet("Selection");
Variant Rango=Select.OlePropertyGet("Range");
Variant Dib=Rango.OlePropertyGet("InlineShapes").OleFunction("AddPicture",imagen.c_str(),true,false,Rango);
Esto funciona pero ahora necesitaria meterle las propiedades a "Range".Sabes algo de esto, por cierto AddLine es un metodo de Shapes o tb de InlineShapes |
|
| Volver arriba |
|
 |
Maria Invitado
|
Publicado: Lun 27 Ene, 2003 1:19 am Asunto: |
|
|
Hola a todos;
A mi tb me gustaría saber más sobre esto, pero me interesa más La función AddLine y AddOleObject del objeto Shape..Leoooo sabes algo de esto |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 27 Ene, 2003 6:36 am Asunto: |
|
|
Hola:
Yo no utilizo mucho esto, todo lo saco de la propia ayuda de Office, que en el caso del Office XP se llama "WDMAIN10.CHM" en mi caso en el path: "C:\Archivos de programa\Microsoft Office\Office10\3082", y dentro de la ayuda bajo "Información de programación" como muestra la imagen. Pero bueno, intentaré ayudar en lo que pueda.
| Cita: | "yo mismo" escribió: ...Intento pasarle tambien las coordenadas donde quiero poner la foto y el tamaño. Pero no me deja, he probado a poner
Variant Select=vWord.OlePropertyGet("Selection");
Variant Rango=Select.OlePropertyGet("Range");
Variant Dib=Rango.OlePropertyGet("InlineShapes").OleFunction("AddPicture",imagen.c_str(),true,false,Rango);
Esto funciona pero ahora necesitaria meterle las propiedades a "Range".Sabes algo de esto, por cierto AddLine es un metodo de Shapes o tb de InlineShapes |
A ver si te sirve esto:
| Código: | Variant vWord = GetActiveOleObject("Word.Application");
Variant vSelection = vWord.OlePropertyGet("Selection");
Variant vRange = vSelection.OlePropertyGet("Range");
// Funciona de manera similar al SelStart/SelLength de un TMemo
vRange.OleFunction("SetRange", 1 /*Start*/, 1 /*End*/);
String imagen = "c:\\imagen.jpg";
Variant vShape = vRange.OlePropertyGet("InlineShapes")
.OleFunction("AddPicture", imagen.c_str(), true, false, vRange); |
Y otra manera de hacerlo, colocandolo en las coordenadas que queramos:
| Código: | // Añadimos: #include<ComObj.hpp>
Variant vWord = GetActiveOleObject("Word.Application");
Variant vDocument = vWord.OlePropertyGet("ActiveDocument");
Variant vShapes = vDocument.OlePropertyGet("Shapes");
Variant vShape = vShapes.OleFunction("AddPicture",
"c:\\imagen.jpg", // Path a la imagen
false, // Vincular imagen al documento?
true, // Guardar la imagen vinculada con el documento?
100, // Coordenada X
0, // Coordenada Y
100, // Ancho de la imagen
100 // Alto de la imagen
);
// Esto equivale a poner el "estilo de ajuste"
// como "cuadrado" en el dialogo de formato de imagen
Variant vWrapFormat = vShape.OlePropertyGet("WrapFormat");
vWrapFormat.OlePropertySet("Type", 0 /*wdWrapSquare*/); |
| Cita: | | "Maria" escribió: ....A mi tb me gustaría saber más sobre esto, pero me interesa más La función AddLine y AddOleObject del objeto Shape.. |
Con respecto a AddLine:
| Código: | Con respecto a AddLine:
Variant vWord = GetActiveOleObject("Word.Application");
Variant vDocument = vWord.OlePropertyGet("ActiveDocument");
Variant vShapes = vDocument.OlePropertyGet("Shapes");
Variant vShape = vShapes.OleFunction("AddLine",
90, 200, // Coordenadas X1,Y1
500, 90 // Coordenadas X2,Y2
);
Variant vLineFormat = vShape.OlePropertyGet("Line");
// Cambiamos el color de la linea
vLineFormat.OlePropertyGet("ForeColor").OlePropertySet("RGB", RGB(255,0,0));
// Cambiamos el grosor de la linea
vLineFormat.OlePropertySet("Weight", 5);
// Hay muchas mas propiedades, consultar la ayuda |
Y un ejemplo con AddOleObject:
| Código: | // Añadimos: #include<OleCtrls.hpp> para usar EmptyParam
// La ayuda pone que esta en Variants.hpp, pero al menos
// en la versión 6+sp2 esta en OleCtrls.hpp
Variant vWord = GetActiveOleObject("Word.Application");
Variant vDocument = vWord.OlePropertyGet("ActiveDocument");
Variant vShapes = vDocument.OlePropertyGet("Shapes");
// Como ejemplo añadimos un archivo de sonido
vShapes.OleFunction("AddOleObject",
EmptyParam, // ClassType
"c:\\sonido.wav", // Nombre archivo
false, // Vincular?
false, // Mostrar como icono?
EmptyParam, // Archivo que contiene el icono
EmptyParam, // Numero de icono dentro de ese archivo
EmptyParam, // Titulo del icono
10, // Coordenada X
10, // Coordenada Y
48, // Ancho
48, // Alto
EmptyParam // Anchor/Ancla/Marca
); |
Espero que sea lo que necesitáis.
Saludos:
_Leo |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|