|
L'OLE (Object Linking & Embedding) est une nouvelle technologie
permettant à une application d'en piloter une autre en utilisant
ses services.
Cette technique permet de faire communiquer deux applications entre
elles.
L'automatisation OLE permet à un processus d'accéder aux
services d'un autre processus ou d'une DLL. Vous pouvez alors vous servir
des options d'une autre application comme Word ou Excel entre autre.
Si vous voulez utiliser un service d'une applicationn(par exemple: la
correction orthographique de Word), il faut que celui-ci est un serveur
d'automatisation OLE. Vous pouvez alors utiliser toutes les possibilités
de l'application grâce à un contrôleur OLE. Grâce
à ce contrôleur, vous pouvez alors utiliser les options
d'une application sans même que l'utilisateur s'en aperçoive.
Une application proposant des services se nomme serveur d'automatisation
OLE.
Le processus pilotant un serveur d'automatisation
OLE est appelé contrôleur d'automatisation OLE.
Lorsqu'un processus intègre à la fois le serveur et
contrôleur d'automatisation OLE, on appelle ce processus de
serveur d'automatisation intégré au processus.
Lorsque le serveur et le contrôleur sont deux processus distincts,
on appelle alors cela le processus de serveur d'automatisation OLE
local.
En réseau, on peut également effectuer de l'automatisation
OLE entre deux machines, on appelle cela de l'automatisation OLE réseau
(OLE NetWork Automation) ou DCOM.
Le
contrôleur d'automatisation |
Un contrôleur permet de
controler un serveur d'automatisation OLE. Donc
un controleur doit avoir connaissance des services du serveur.
Chaque serveur est libre de proposer les services
qu'il désire. Alors
un contrôleur OLE ne doit pas manipuler une information de trype
statique. Cette information doit être obligatoirement dynamique
en fonction du serveur qui est utilisé. Delphi
dispose d'un type de donnée appelé variant.
Cette variable peut manipuler des objets quelconques et sert donc
à la manipulation des serveurs OLE.
Connexion à un serveur
Pour se connecter à un serveur, il faut
créer un objet ole grâce à la fonction "CreateOLEObject".
Cette fonction se trouve dans l'unité "OleAuto" pour
Delphi 2 et dans l'unité" ComObj" pour les versions
supérieures.
Le serveur le plus connu est Word car c'est l'un des tous premiers
qui met se service et l'un des logiciels les plus utilisés.
Voici la création d'un controleur OLE.
uses
ComObj;
Var WordApp:variant;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
//Démarrer Word
WordApp:=CreateOleObject('Word.Application'); //Crée
un objet unique non initialisé de la classe spécifiée par
le paramètre 'Word.Application'
WordApp.Application.Visible:=True; //Rends
l'application Word visible
end; |
|
Déconnexion d'un serveur
Pour se déconnecter d'un serveur, il faut assigner
une valeur vierge à la variable de type variant.
procedure
TForm1.Button2Click(Sender : TObject);
begin
WordApp:=UnAssigned;
end; |
|
Utilisation
d'un service
Voici un exemple qui créer un nouveau document.
procedure
TForm1.Button3Click(Sender : TObject);
begin
WordApp.Documents.Add; //Nouveau document
end; |
|
Exemple complet d'OLE avec Word
uses
ComObj;
var Form1: TForm1;
WordApp :Variant;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
//Démarrer Word
WordApp:=CreateOleObject('Word.Application'); //Cree
un objet unique non initialisé de la classe spécifiée par
le paramètre 'Word.Application'
WordApp.Application.Visible:=True; //Rends
l'application Word visible
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Fermer Word
WordApp.Quit;
WordApp:=UnAssigned;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//Rendre invisble Word
WordApp.Visible:=False;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
//Rendre visible Word
WordApp.Visible:=True;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//Nouveau document
WordApp.Documents.Add;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
//Ouvrir un document
WordApp.Documents.Open(Edit1.Text);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
//Fermer un document
WordApp.Documents.Close;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
//Insérer du texte
WordApp.Selection.InsertAfter(Edit2.Text)
end;
end. |
|
OLE
avec Word |
[ 29-06-2002 ] |
Exemples
d'ole avec Word.
Télécharger : [6
Ko] [
oleword.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|