Lazarus,le clone multi-plateforme de Delphi, permet de piloter sous Windows certaines applications via OLE, par exemple, les logiciels de la suite Microsoft Office. Pour illustrer ces possibilités, j’ai choisi un exemple d’envoi d’un courriel via Lotus Notes depuis un programme Lazarus.
Avant de voir d’aller plus loin, vous devez savoir que cet exemple a été développé avec Lazarus 0.9.27 SVN 19196 sous Windows 2000 Pro et le client Lotus Notes 7.02.
Le programme
Le programme ci-dessous représente le code généré par Lazarus après l’ajout d’un bouton sur la "Form" générée par défaut à la création d’une nouvelle application sous Lazarus.
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } uses ComObj; procedure TForm1.Button1Click(Sender: TObject); var NotesSession : Variant; // Objet OLE SessionNotes NotesDatabase: Variant; // Objet Base Notes NotesDocument: Variant; // Ojbet Document Notes d'une base Notes NotesField : Variant; // Objet Champ d'un document Notes Serveur : string; // Nom du serveur Notes Fichier : string; // Nom du fichier .nsf de la base Notes AdresseEmail : string; // Adresse email du destinataire begin Serveur := ''; // Serveur Notes = '' signifie serveur Local Fichier := ''; // Fichier nsf de la base à ouvrir AdresseEmail := 'destinataire@domaine.tld'; // Courriel du destinataire NotesSession := CreateOLEObject('Notes.NotesSession'); // On crée une session Notes NotesDatabase := NotesSession.GETDATABASE(Serveur, Fichier); if not NotesDatabase.ISOPEN then NotesDatabase.OPENMAIL; // Ouverture de la base Courrier NotesDocument := NotesDatabase.CREATEDOCUMENT; // On crée un nouveau document Notes NotesField := NotesDocument.APPENDITEMVALUE('Form', 'Memo'); // Champ Form du nouveau document indique qu'on ajoute un nouveau "mémo" NotesField := NotesDocument.APPENDITEMVALUE('Subject', 'Test Automation'); // Sujet NotesField := NotesDocument.APPENDITEMVALUE('SendTo', AdresseEmail); // Courriel destinataire NotesField := NotesDocument.CREATERICHTEXTITEM('Body'); // On crée le body NotesField.ADDNEWLINE(1); // Dans lequel on ajoute une ligne NotesField.APPENDTEXT('TEST AUTOMATION LAZARUS'); // Avec du texte NotesField.ADDNEWLINE(1); NotesDocument.Send(1); // Envoi du message (le 1 signifie qu'on sauvegarde le message dans le courrier envoyé NotesField := Unassigned; // "Destruction" des objets NotesDocument := Unassigned; NotesDatabase := Unassigned; NotesSession := Unassigned; end; initialization {$I unit1.lrs} end.
Si vous le souhaitez, je vous ai préparé une archive à télécharger contenant le projet Lazarus complet. N’hésitez pas à m’indiquer vos remarques concernant ce morceau code.
Projet.zip (155,2 KiB, 21 hits)


Derniers commentaires