Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dudas sobre objetos OLE y sus procedimientos (https://www.clubdelphi.com/foros/showthread.php?t=51495)

Gabo 17-12-2007 17:26:45

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. :)

duilioisola 17-12-2007 17:52:36

Supongo que una buena web para averiguar las instrucciones que soporta Word es la de Microsoft.

duilioisola 17-12-2007 18:02:17

Supongo que una buena web para averiguar las instrucciones que soporta Word es la de Microsoft.

Gabo 17-12-2007 19:06:36

Cita:

Empezado por duilioisola (Mensaje 253145)
Supongo que una buena web para averiguar las instrucciones que soporta Word es la de Microsoft.

Hola duillisola. :)

En un principio, busqué en el MSDN, pero la información se quedaba escasa.

Encontré este enlace:

http://bcbjournal.org/articles/vol3/...4e4d39fb4ac624

En él hay una referencia al archivo \Microsoft Office\Office\Vbawrd8.hlp, que imagino es de Word 97. Creo que el equivalente en Word 2003 es éste: "C:\Archivos de programa\Microsoft Office\Office 10\3082\VBAWD10.chm" (también hay para el resto de producto de Office 2003). Si bien está orientado a VisualBasic, imagino que los objetos, métodos, propiedades y eventos serán los mismos. Ahora lo estoy consultando y, si me gusta, lo dejaré como referencia.

De todos modos, si alguien conoce otros artículos, libros, etc., en fin, cualquier otra referencia, le agradeceré que me lo diga.


La franja horaria es GMT +2. Ahora son las 04:26:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi