Ver Mensaje Individual
  #1  
Antiguo 17-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Reputación: 18
Gabo Va por buen camino
Dudas sobre objetos OLE y sus procedimientos

Hola a todos,
aquí estoy de nuevo, para hacerles un pregunta.

Verán, hace un tiempo tuve que hacer una aplicación en la que abría y escribía en un documento Word. Para realizarla, consulté varios códigos que estaban por ahí en Internet. Un ejemplo simple de lo que hice es éste código:

Código:
 
// CREO EL WORD
Variant word, doc;
try
{
    word = Variant::GetActiveObject("Word.Application");
    word.OleProcedure("Quit", false);
    word = Variant::CreateObject("Word.Application");
}catch(...){
    word = Variant::CreateObject("Word.Application");
}
word.OlePropertySet( "Visible", (Variant) true );
doc = word.OlePropertyGet("Documents");
// Creo la ruta completa al archivo *.doc
AnsiString archivo;
archivo = "C:\\archivo.doc");
// Si existe el archivo, lo abro.
if (FileExists(archivo))
{
    doc.OleFunction("Open", path, Unassigned, true);
}else{
    MessageBox(this->Handle, "El archivo no existe", "Error" , MB_APPLMODAL | MB_OK | MB_ICONERROR);
word.OleProcedure("Quit");
return;
}
// UNA VEZ ABIERTO ESCRIBO EN ÉL
try
{
  // CREO LOS ENCABEZADOS
  Variant Selection = word.OlePropertyGet("Selection");
  Variant Font = Selection.OlePropertyGet("Font");
  Variant Parrafo = Selection.OlePropertyGet("ParagraphFormat");
  Parrafo.OlePropertySet("Alignment","1");
  Font.OlePropertySet("Name","Monotype Corsiva");
  Font.OlePropertySet("Bold","1");
  Font.OlePropertySet("Size","13");
  Selection.OleProcedure("TypeText", "Hola a todos");
}catch(...){
  MessageBox(this->Handle, "Error al escribir en el archivo", "Error" , MB_APPLMODAL | MB_OK | MB_ICONERROR);
}
Ahora, si bien es cierto que entiendo la lógica de lo que hice, no conozco a plenitud muchas de las instrucciones que utilicé.

Por ejemplo, cuando ocupo CreateObject o GetActiveObject, ¿con qué otros objetos puedo trabajar?

O en los casos de los wrapper OleFunction, OleProcedure, OlePropertySet y OlePropertyGet, ¿cómo puedo saber qué instrucciones soportan? Es decir, en OleProcedure, puedo darle la instrucción "Quit" y "ClearFormatting", pero, ¿cómo averiguo qué otras instrucciones existen?

Cómo verán mis dudas son muy generales, y en realidad, lo que quiero saber es dónde encontrar información al respecto para leer y entenderlo bien.

Gracias de antemano por la ayuda.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.

Última edición por Gabo fecha: 17-12-2007 a las 17:28:52.
Responder Con Cita