OLE (object Linking and Embedding)


2022-09-01 008.384





1. Introduction

La technique OLE (Object Linking and Embedding) de SW-Tools vous permet d'incorporer le contenu des applications de Windows dans un rapport ou dans un programme d'interrogation déjà définis dans le programme TRIO de SW-Tools. Nous utiliserons l'abréviation OLE d'Object Linking and Embedding.

En utilisant OLE, il sera possible d'employer les facilités de Microsoft Word (un traitement de texte par exemple) lors de la définition d'une lettre de client, de la lecture d'une séquence vidéo ou de l'interrogation des informations sur un article, etc.

TRIO dispose d'un interface permettant la définition d'une zone libre inscrit comme OLE. Lorsque vous insérez celle-ci dans la présentation de votre rapport ou dans votre interrogation, vous pouvez sélectionner de lier celle-ci à un autre document déjà existant ou de créer un document " enrobé " .

Une lien vers un document existant de Microsoft Word réfère seulement à un nom de fichier. Si vous avez un document stocké sous c:/Microsoft/word/customer.doc , vous aurez la possibilité de faire une lien directement vers celui-ci. Si la modification de ce document est saisi par un autre utilisateur qui n'utilise pas TRIO, l'objet sera mis à jour la prochaine fois que le rapport et l'interrogation seront exécutés.

Si vous utilisez la technique OLE pour un document "enrobé " , le contenu de celui-ci sera sauvegardé avec le programme de TRIO. Vous pouvez seulement modifier ce contenu à partir du TRIO par l'utilisation du programme OLE, et non directement à partir de l'application d'origine.

L'utilisation des méthodes de " l'encapsulation " ou de la liaison d'un objet à son application d'origine dépendent de la façon selon laquelle vous souhaitez enregistrer le contenu d'objets.

A l'aide des exemples dans RAPGEN et dans IQ, vous allez maintenant apprendre l'utilisation des objets OLE dans TRIO.

1.1. Release notes

L'interface utilisateur de SW-Tools Rapgen/IQ est élargie avec :

- Un nouveau type de zone OLE additionné au dialogue de la zone libre

Veuillez vous reportez aux exemples dans ce manuel.

2. OLE dans RAPGEN

Dans ce chapitre nous allons présenter étape par étape la définition d'une lettre qui peut lire et imprimer des informations à partir d'une base de données y compris le texte écrit à l'aide de Microsoft Word.

2.1. Première étape : Définition d'une lettre de fournisseur

Dans cette première étape nous allons définir une lettre de fournisseur basée sur les démos (fichiers) de Trio :


1. Définition d'une lettre de fournisseur

Sélectionnez le fichier 'le' dans la case Fichier principal de la lettre et frappez dans le compartiment Nom du rapport 'Lettre de fournisseur'.


2. Insertion des zones dans le présentation de la lettre

Une fois que cela à été fait, trois zones à partir du fichier de fournisseur seront insérées dans la présentation.

2.2. Deuxième étape : Insertion du contenu d'un document Microsoft Word

Afin d'insérer le contenu d'un document Microsoft Word dans la lettre, définissez d'abord une zone contenant le type d'objet OLE 2.0. Dans cette deuxième étape nous avons sélectionné la zone libre numéro 10 à partir de la fenêtre de base de données


3. Définition d'une zone libre contenant le type d'objet OLE 2.0

Lorsque la zone est insérée dans la présentation du rapport et réduite à sa taille souhaitée, sélectionnez le type d'objet OLE en cliquant sur cette zone à l'aide du bouton droit de votre souris et puis sélectionnez la fonction 'Texte...'.


4. Sélection de l'objet OLE voulu

La première fois que vous sélectionnez la fonction 'Texte...' pour un objet OLE, un dialogue contenant la vue d'ensemble d'objets OLE 2.0 installés apparaîtra. A partir de cette liste , sélectionnez :


5. Sélection de Microsoft Word comme objet

Puis, RAPGEN activera le serveur de l'objet désiré, (ici Microsoft Word), et vous permettra d'utiliser la fonctionnalité du traitement de texte pour entrer le texte voulu dans le système word.


6. Insertion du contenu de l'objet dans Microsoft Word

Une fois que le texte a été inséré, fermez l'application et le contenu de l'objet apparaîtra dans la présentation de la lettre.


7. Présentation de la lettre y comrpis le contenu de l'objet OLE

Finalement, vous pouvez additionner la zone de solde à la zone de l'objet OLE. La lettre est finie.

2.3. La lettre finale de fournisseur

Voici la lettre après l'impression :


8. Sortie sur l'imprimante de la lettre de fournisseur

2.4. Utilisation de la technique de lien au lieu" d'enrobage "

Une autre possibilité est celle d'utiliser la technique par laquelle l'objet est lié à un document existant. Si vous voulez enregistrer exactement le même texte (regardez l'exemple dans la figure 5) dans un fichier nommé :

c:/swtools/supplier.doc

l'objet peut être lié à ce fichier au lieu d'être incorporé dans le rapport.

Insérez la zone définie Objet OLE dans la présentation et sélectionnez la fonction 'Texte...' en cliquant à l'aide de votre souris sur cette ligne dans la présentation.

Checker dans le dialogue suivant 'Lien vers un fichier existant' et entrez le nom du fichier.


9. Lien vers un fichier existant

La sortie imprimée sera la même que dans la figure 8 dans laquelle l'objet était " enrobé "dans la présentation.

Veuillez noter que vous ne pouvez pas changer entre un objet incorporé et lié. Vous devez d'abord supprimer la zone dans la représentation et puis l'insérer encore une fois. Vous pouvez donc définir un lien vers un fichier existant au lieu d'un " enrobage "

3. OLE dans IQ/DATAMASTER

Dans ce chapitre nous allons décrire comment l'architecture d'OLE sera insérée dans les programmes d'IQ et de DATAMASTER. Nous illustrons ce méthode dans le programme d'IQ. Pour le programme de DATAMASTER. vous pouvez procéder de la même manière comme pour le programme d'IQ.

Pour vous donner une idée de l'utilisation des applications dans TRIO avec OLE, nous avons choisi un exemple qui fonctionne en tant qu'une interrogation de fournisseur à laquelle vous pouvez additionner n'importe quel type d'objet OLE sous forme des informations supplémentaires sur un fournisseur.

3.1. Création d'une interrogation simple

L'exemple suivant est basé sur une interrogation simple de fournisseur

le#1-6

qui a été enregistré comme programme 1 dans IQ.


10. Interrogation dans IQ

3.2. Insertion d'objet OLE étape par étape

Définissez une zone libre #10 à l'aide de la fonction Aperçu de l'écran avec le nom 'OLE Objet de fournisseur' dans la boîte de dialogue et puis sélectionnez '#O OLE 2.0 Objet'.dans le compartiment type d'objet


11. Zone libre définie comme objet OLE

Insérer cette zone à sa position souhaitée dans l'écran de visualisation et agrandir la boite à sa taille désirée. Puis insérer deux lignes de calcul pour la lecture de l'objet OLE Après lecture du fichier de fournisseur;

#14="c:/swtools/",#1,".swo"
OleLoad(#10,#14)

3.3. Utilisation de trois boutons pour l'utilisation de l'O.L.E

Insérez trois zones libres définies '& Créer ', '& Enregistrer ' et ' & Action '. Toutes les zones sont définies en tant que format 8.Lorsque vous avez inséré celles-ci dans la présentation du rapport, vous devez sélectionner type d'objet 'Bouton' dans la liste déroulante qui apparaît lorsque vous cliquez à l'aide du bouton droit de votre souris sur les trois zones.


12. Boutons pour la commande de l'objet OLE

3.4. Création de l'objet OLE

Les calculs nécessaires pour créer un objet enrobé ou lié :


13. Calculs pour la création d'un objet OLE

La zone libre #15, utilisée pour l'identification de l'objet voulu, est définie en tant que format '9,'.

3.5. Comment enregistrer l'objet

Pour vous permettre d'enregistrer l'objet crée, nous avons additionné les calculs suivants :


14. Calculs pour l'enregistrement de l'objet OLE

Le chemin standard c:/swtools/ suivi par le numéro de fournisseur et le nom de famille .swo créeront le nom de fichier de l'objet complet. Le nom du fichier no 205 peut être par exemple :

c:/swtools/205.swo

Le format de la zone libre #14 est 128 (Il s'agit d'une zone alphanumérique pour pouvoir contenir le nom du fichier y compris le chemin).

3.6. Opérations effectuées sur un objet

Il existe plusieurs types d'objet OLE, raison pour laquelle l'utilisateur ne peut pas manipuler les objets à sa guise. Les opérations effectuées par l'utilisateur sont lié à la fonctionnalité des applications. En utilisant un objet par exemple de Microsoft Word, vous serez capable d'éditer le contenu de l'objet tandis que pour un objet de Microsoft Vidéo vous avez également à disposition une fonction qui vous permet de jouer l'objet. Les calculs effectués peuvent vous donner une idée des différents opérations vous pouvez effectuées sur chaque type d'objet.


15. Calculs pour les opérations d'un objet OLE

Ces fonctions sont décrites plus tard dans ce manuel. La définition des zones libres employées sera :

  Field no Name Format
  16 OLEMenu 9,
  17 OLEMenuItem 9,
  18 Application Window 9,
  19 Start X 9,
  20 Start Y 9,
  21 End X 9,
  22 End Y 9,

3.7. Comment travailler avec l'interrogation finale

L'interrogation finale est comme un programme standard d'IQ, seulement vous avez à disposition trois bouton spéciaux auxquels sont additionnés des calculs.

Vous pouvez, par exemple, trouver le fournisseur no 205, en frappant la valeur 205 dans la zone de clé.

Si vous souhaitez écrire une commentaire pour ce fournisseur à l'aide de Microsoft Word, cliquez sur le bouton Créer. et le dialogue qui vous permet de créer un objet apparaîtra. A partir de ce dialogue, sélectionnez 'Microsoft Word' comme objet " enrobé ".


16. Création d'un objet pour le numéro de fournisseur 205

Une fois que l'objet a été crée, activez l'application de l'objet Microsoft Word en cliquant sur le bouton 'Action' et puis en sélectionnant la fonctionEdit.


17. Entrer une note dans Microsoft Word

Une fois que Microsoft Word a été fermé, le contenu d'objet apparaîtra à l'intérieur de l'interrogation d'IQ.


18. Interrogation d'IQ contenant une note à partir de Microsoft Word

4. Fonctions de l'OLE

Les fonctions de l'OLE sont installées sur Windows DLL (Dynamic Linked Library). Toutes ses fonctions sont décrites et implémentés en tant que sous-fonctions dans le fichier 10.xxx de TRIO. C'est à dire que xxx est le code de langage sur le chemin où se trouve TRIO.

4.1. Documentation en ligne

Vous pouvez trouver la description en ligne des fonctions de l'OLE dans la fenêtre de base de données. Sélectionnez le fichier nommé 'Fonctions OLE ', c'est à dire le fichier id 10.


19. Documentation en ligne des fonctions

4.2. Codes d'erreur généraux

La liste suivante contient les codes d'erreur généraux :

00 No error
01 Missing OLEx.DLL
02 Missing function in DLL
03 Cannot set message queue
04 Subcall of function failed
05 Call of OLE function failed
06 Illegal OLE version
07 Must call ole_init first
08 Windows register function failed
09 Missing COMPOBJ.DLL
10 Missing STORAGE.DLL
11 Object does NOT support Unknown interface
12 Missing interface
13 Cannot allocate needed memory
14 No verbs found for this object
15 Unknown verb or menu id
16 No objects for OLE2.0
17 Unknown object or menu id
18 No storage allocated for object
19 No call has been made to ole_init
20 Missing OLE2DISP.DLL/OLEAUT32.DLL
21 Cannot convert string to OLE string or visa versa

4.3. OleAllocate - Allouer un emplacement de mémoire à un nouveau objet

nombre OleAllocate()
Paramètres:
Aucuns.
Description:
Cette fonction alloue un emplacement de mémoire à un nouveau objet OLE. La valeur retour est utilisée comme premier paramètre pour les fonctions de l'OLE.

Lorsqu'on utilise plus qu'un objet, il faut libéré la mémoire à l'aide de la fonction OleFree().

Veuillez noter qu'une zone OLE insérée dans la présentation d'un rapport ou dans l'aperçu de l'écran d'une interrogation ou d'un programme d'enregistrement exécutera automatiquement la fonction OleAllocate lors du démarrage du programme ainsi que la fonction OleFree lors de la fermeture du programme

Valeur retour:
Si id retourné est zéro, il ne sera pas possible de créer un objet.
OleLinkToFile,OleEmbedded,OleDialogCreate
Exemple:
#50=OleAllocate() /* Allouer un emplacement de mémoire à un nouveau objet du type inconnu
OleLinkToFile(#50,"c:/swtools/notice.doc") /* Lien vers un document Word note.doc (Zone #50 est insérée dans la présentation du rapport)
OleFree(#50) /* Libérer la mémoire utilisée par un objet


4.4. OleFree : Libérer l'objet

Nombre OleFree(ObjetID par1)
Paramètres:
par1: id unique d'objet
Description:
Cette fonction libère la mémoire allouée à l'aide de la fonction OleAllocate().

Veuillez noter que la zone OLE insérée dans la présentation du rapport ou dans l'aperçu de l'écran d'une interrogation ou d'un programme d'enregistrement exécutera automatiquement OleAllocate lors du démarrage du programme ainsi que la fonction OleFree lors de la fermeture du programme

Valeur retour:
0=OK
x=Voir la section Codes d'erreur
Voir aussi:
OleAllocate
Exemple:
Voir OleAllocate


4.5. OleLinkToFile : Lien vers un fichier contenant n'importe quel type d'objet

Nombre OleLinkToFile(ObjetID par1, nom du fichier par2)
Paramètres:
par1: id unique d'objet
par2: Nom du fichier de l'objet (Regardez note 1)
Description:
Cette fonction vous permet de faire un lien vers n'importe quel type de fichier existant et par ceci rechercher l'objet. Par exemple si le nom du fichier dans par2 est "note.doc" , la fonction fera appel à OLE qui recherche le type de fichier de Windows".doc" et confirmera qu'il s'agit d'un document de 'Microsoft Word'.

Le contenu éventuelle de l'objet par1 sera supprimé avant l'exécution d'un lien.

En utilisant la fonction OleDialogCreate(), vous pouvez faciliter la création des objets "enrobés " et " liés à l'aide du dialogue standard de Windows.

Lorsque vous utilisez un objet contenant un lien dans TRIO, le nom du fichier sera seulement enregistré quand vous l'utilisez dans sa présentation. Ceci s'applique également à un fichier enregistré à l'aide de la fonction OleSave() Si vous souhaitez avoir un objet unique à partir du programme de TRIO actuel, vous devrez utiliser un objet enrobé

Note 1 Si par2 est égal à "" (aucun nom du fichier) cette fonction utilisera le nom du fichier sélectionné précédemment

Par exemple, si vous avez sélectionner le fichier "Tableur.xls" à l'aide de la fonction OleDialogCreate(), ce nom sera sélectionné encore une fois.

Valeur retour:
0=OK
x=Voir les codes d'erreur généraux
Voir aussi:
OleEmbedded,OleDialogCreate
Exemple:
Voir OleAllocate


4.6. OleEmbedded : Création d'un objet enrobé

Nombre OleEmbedded(ObjectID par1, nombre par2, texte par3, nombre par4, nombre par5)
Paramètres :
par1: id unique d'objet
0=id de programme
1=élément de menu
par3: id de programme si fonction = 0
par4: élément de menu si fonction = 1
par5: Numéro de démarrage du menu si fonction = 1
Description:
Cette fonction créera un objet enrobé, c'est à dire un objet à partir de l'application TRIO. Pour créer un objet enrobé, indiquez le programme id de l'application de l'objet comme dans le fichier d'enregistrement de Windows (Consultez la documentation sur chaque type d'objet).

Id de programme d'un document Microsoft Word 97, sera "Word.Document.8".

Les paramètres par4 and par5 sont utilisés à l'aide des fonctions OleDialogCreate(), OleFillObjectMenu() et OleMenuSelect(). Veuillez consulter la documentation consacré à ses fonctions

Valeur retour:
0=OK
x=Voir le paragraphe consacré aux codes d'erreur
Voir aussi:
OleAllocate,OleLinkToFile,OleDialogCreate,OleFillObjectMenu
Exemple:
#50=OleAllocate() /* Allouer un emplacement de mémoire à un nouveau objet inconnu
OleEmbedded(#50,0,"Word.Document.8",0,0)


4.7. OleFillObjectMenu : Créer un menu contenant tous les objets enregistrés

Nombre OleFillObjectMenu(nombre par1, nombre par2, nombre par3, texte par4)
Paramètres:
par1: id unique de menu
par2: numéro du démarrage de menu
par3: Nombre maximal d'éléments dans un sous-menu
par4: Nom du sous-menu
Description:
Vous pouvez utiliser cette fonction pour créer un menu déroulant qui vous permet de sélectionner un objet. Elle additionnera des éléments à un menu à l'aide de OleMenuCreate().

Chaque élément additionné au menu aura un id à partir de 0 à x. Ceci peut poser un problème de fond lié au conflit éventuel avec les autres éléments de menu insérés précédemment. Vous pouvez alors utiliser par2 comme numéro du démarrage de menu. C'est à dire si par2 est égal à 1000, les éléments seront numériser à partir de 1000 à x.

Le nombre d'éléments utilisé dépend des applications installées sur le système.

A cause de la fixation des limites lors de l'affichage du menu déroulant, vous pouvez indiquer un nombre maximal d'éléments dans par3 si par3 est égal à 10 un sous-menu pour chaque élément sera crée. Les sous-menus seront nommés xxxxx 1-10, xxxxx 11-20 etc., et il faut indiquer xxxxx dans par4.

Valeur retour:
0=OK
x=Voir le paragraphe consacré aux codes d'erreur
Voir aussi:
Exemple:
#50=OleAllocate() /* Allouer un nouveau objet, inconnu
#51=OleMenuCreate() /* Créer un nouveau menu
OleFillObjectMenu(#51,1000,10,"Objet") /* Menu du fichier contenant tous les objets enregistrés
#52=OleMenuSelect(#51) /* Rechercher l'objet choisi
if #52 >= 1000 OleEmbedded(#50,1,"",#52,1000) /* Créer l'objet enrobé
OleMenuDestroy(#51) /* Détruire le menu crée
OleFree(#50) /* Libérer l'emplacement de mémoire utilisé pour l'objet


4.8. OleFillVerbMenu : Créer un menu contenant toutes les fonctions de l'objet

Nombre OleFillVerbMenu(ObjetID par1, nombre par2, nombre par3)
Paramètres:
par1: Id unique d'objet
par2: Id unique de menu
par3: Numéro de démarrage du menu
Description:
Cette fonction vous permettra de remplir un menu contenant toutes les fonctions de l'objet. Il s'agit des actions Edit, Ouvrir, Jouer, etc., selon le type d'objet. Normalement, tous les objets possèdent les fonctions Edit et Ouvrir, mais un nombre d'objets possède également des actions comme Play (Son/Vidéo).

L'action est uniquement identifié selon un numéro seulement connu par l'objet. A l'aide de cette fonction vous pouvez additionner des éléments au menu dans lequel vous pouvez sélectionner l'opération à exécuter sur l'objet.

Chaque élément additionné au menu, aura un id unique à partir de 0 à x. Ceci peut poser un problème de fond lié au conflit éventuel avec les autres éléments de menu insérés précédemment dans cette fonction. Vous pouvez utiliser par3 comme numéro de démarrage du menu. C'est à dire si par3 est égal á 1000, les éléments seront numérotés à partir de 1000 à x.

Valeur retour:
0=OK
x=Voir le paragraphe consacré aux codes d'erreur généraux
Voir aussi:
Exemple:
/* #50 est inséré dans l'aperçu de l'écran d'IQ
OleLinkToFile(#50,"c:/swtools/sound.wav") /* Lien vers un fichier de son
#51=OleMenuCreate() /* Créer un menu
OleFillVerbMenu(#50,#51,2000) /* Additionner toutes les actions connues au menu
#52=OleMenuSelect(#51) /* Laissez l'utilisateur sélectionner une action
#53=GETINFO(1) /* Rechercher l'application d'IQ
#54=GETINFO(6,"#50") /* Rechercher la position de début x de l'objet
#55=GETINFO(7,"#50") /* Rechercher la position de début y de l'objet
#56=GETINFO(8,"#50") /* Rechercher la position de fin x de l'objet
#57=GETINFO(9,"#50") /* Rechercher la position de fin y de l'objet
OleDoVerb(#50,0,#52,2000,#53,#54,#55,#56,#57)


4.9. OleDoVerb : Exécuter un action sur un objet

Nombre OleDoVerb(ObjetID par1, nombre par2, nombre par3, nombre par4, nombre par5, nombre par6, nombre par7, nombre par8, nombre par9)
Paramètres :
par1: Id unique d'objet
par2: Fonction
0=Utiliser le numéro d'élément du menu
1=Utiliser id de l'action
par3: Elément de menu / id de l'action dépend de par2
par4: Numéro de démarrage du menu si par2 = 0
par5: Identification de fenêtre
par6: Position x de début de l'objet
par7: Position y de début de l'objet
par8: Position x de fin de l'objet
par9: Position y de fin de l'objet
Description:
Cette fonction sélectionnera une action pour un objet. Il s'agit des actions Edit, Ouvrir, Jouer, etc., selon le type d'objet. Normalement, tous les objets ont les actions Edit et Ouvrir tandis que d'autres ont des actions supplémentaires comme Play (Son/Vidéo).

Si vous connaissiez id d'action de l'objet, vous pourrez l'indiquer directement dans par3 avec par2inscrit en tant que 1. Sinon, vous pouvez utiliser l'exemple OleFillVerbMenu() (Ici l'utilisateur choisit l'opération à effectuer à partir d'un menu).

Indiquer les paramètres par5-par9.à l'aide de la sous-fonction GETINFO(). Vous devez définir ces paramètres en format "8." (16/32 bit compatible). Si l'application est incorrectement définie, vous obtiendrez un résultat inattendu.

Valeur retour:
0=OK
x=Consultez le paragraphe consacré aux codes d'erreur
Voir aussi:
OleFillVerbMenu
Exemple:
Voir OleFillVerbMenu


4.10. OleSave : Enregistrer un objet enrobé dans un fichier

Nombre OleSave(ObjetID par1, nom du fichier par2)
Paramètres:
par1: id unique d'objet
par2: Nom du fichier
Description:
Cette fonction vous permettra d'enregistrer un objet dans un fichier. Il peut être enrobé ou lié. Pour un objet lié, seulement le nom du fichier sera sauvegardé tandis que pour un objet enrobé, tout l'objet sera sauvegardé.

Vous pouvez rechercher l'objet enregistré à l'aide de la fonction OleLoad().

Valeur retour:
0=OK
x=Consultez le paragraphe des codes d'erreur généraux
Voir aussi:
OleLoad
Exemple:
/* Dans une application DATAMASTER, vous pouvez créer un objet enrobé pour chaque fournisseur dans le démo système TRIO
/* Le démo système travaille avec des fichiers SSV-Text qui supportera seulement les zones de texte et de nombre.
/* Si vous créez le nom de fichier à partir du numéro de fournisseur, vous pourrez enregistrer l'objet dans un fichier séparé .
[Mise à jour du fichier de fournisseur]
#51="c:/swtools/démo",#1,".swo" /* Créer un nom de fichier unique pour l'objet de fournisseur
OleSave(#50,#51) /* Sauvegarder l'objet
[Après lecture du fichier de fournisseur]
#51="c:/swtools/démo",#1,".swo" /* Générer un nom de fichier unique pour l'objet de fournisseur
OleLoad(#50,#51) /*Rechercher l'objet


4.11. OleLoad : Rehercher un objet enrobé à partir d'un fichier

Nombre OleLoad(ObjectID par1, nom du fichier par2)
Paramètres:
par1: id unique de l'objet
par2: Nom du fichier
Description:
Cette fonction vous permettra de chercher l'objet précédemment enregistré à l'aide de la fonction OleSave().

Valeur retour:
0=OK
x=Consultez le paragraphe consacré aux codes d'erreur
Voir aussi :
OleSave
Exemple:
Voir OleSave


4.12. OleGetInfo : Chercher des informations sur un objet

Nombre OleGetInfo(ObjetID par1, nombre par2, texte par3)
Paramètres:
par1: id unique de l'objet
par2: Fonction
0=N'utiliser pas par3
1=Retourer le nom du fichier dans par3
par3: Zone de texte pour le nom du fichier de retour
Description:
Cette fonction retourne les informations sur l'objet indiqué. Ces informations dépendent du code de la fonction(par2), Elles peuvent être :

Pour la fonction 0 par3 n'est pas utilisé. Pour la fonction1 une copie du nom de fichier de l'objet va être retournée dans par3

Valeur retour:
-1=Fonction illégale indiquée dans par2
Fonction 0: Retourne les informations sur l'objet
Fonction 1: Retourne la longueur du nom du fichier
Regardez aussi :
OleSetInfo
Exemple:
Si OleGetInfo(#50,1,#53) > 0 commencera /*Chercher le nom de fichier pour l'objet
#51=GETINFO(1) /* Chercher la fenêtre de l'application IQ;
#52=OleDialogFile(#51,"*","Tous les fichiers,*.*",0,#53,"") /* Laisser l'utilisateur changer le nom du fichier
si #52=0 OleLinkToFile(#50,#53) /* Lien vers le nouveau nom du fichier
Fin


4.13. OleSetInfo : Indiquer les informations sur l'objet

nombre OleSetInformation(ObjetID par1, Bitdrapeau par2, nombre par3)
Paramètres :
par1:id unique de l'objet
par2: Fonction
0=Aucun drapeau
1= Dimensions réels
2=Gamme verticale
4=Gamme horisontale
par3: Tampon
Description:
Cette fonction inscrit les informations sur l'objet. Ces informations dépendent du code de la fonction par2 qui peut être :

Pour la fonction0, les drapeaux de l'objet doivent être indiqués dans par3. La valeur peut être une ou plusieurs des valeurs suivantes :

0 - Aucun drapeau. L'objet est réduit selon les dimensions de la boîte de zone. 1 - L'objet utilise ses dimensions physiques. Si la boîte de zone est plus petite que l'objet celle-ci sera coupée. 2 - La dimension verticale est réduite selon la dimension horizontale de la boîte de zone

4 - La dimension horizontale est réduite selon la dimension verticale de la boite de zone.

Chaque objet créé utilise un drapeau 2 comme option.

Valeur retour:
-1=Fonction illégale
Fonction 0: Retourne les nouveaux drapeaux de l'objet.
Voir aussi :
Exemple:
OleSetInfo(#50,0,0) /* Réduit l'objet selon la taille de la boîte de zone


4.14. OleMenuCreate : Créer un menu

Nombre OleMenuCreate()
Paramètres:
Aucuns.
Description:
Afin de créer un menu Windows, utilisez cette fonction. Une fois que le menu a été créé, vous pouvez additionner des éléments à l'aide de la fonction OleMenuAdd.

Lorsque vous n'avez plus besoin du menu, il faut le détruire à l'aide de la fonction OleMenuDestroy. Sinon, la mémoire ne sera pas libérée !

Valeur retour:
0=Le menu ne peut pas être créé
x=id unique du menu
Voir aussi:
OleMenuDestroy,OleMenuAdd,OleMenuSelect
Exemple:
#51=OleMenuCreate() /* Création d'un menu
OleMenuAdd(#51,0,3000,"Afficher démo tableur Excel") /* Additionner l'élément id 3000
OleMenuAdd(#51,0,3001,"Afficher démo document Word") /* Additionner l'élément id 3001
#52=OleMenuSelect(#51) /* Laisser l'utilisateur sélectionner un des éléments du menu
OleMenuDestroy(#51) /* Eliminer le menu après l'usage
if #52=3000 OleLinkToFile(#50,"c:/swtools/sheet.xls")
if #52=3001 OleLinkToFile(#50,"c:/swtools/document.doc")


4.15. OleMenuDestroy - Eliminer un menu

Nombre OleMenuDestroy(nombre par1)
Paramètres :
par1: id de menu unique
Description:
Cette fonction libérera la mémoire utilisée pour un menu crée à l'aide de la fonction MenuCreate(). Si vous avez additionner des sous-menus à ce menu dans par1 ils seront éliminés.

Valeur retour:
0=OK
-1=id du menu illégal
Voir aussi:
OleMenuCreate
Exemple:
Voir OleMenuAdd


4.16. OleMenuAdd : Additionner un élément au menu

Nombre OleMenuAdd(nombre par1, nombre par2, nombre par3, texte par4)
Paramètres:
par1:id du menu unique
par2: Fonction,0=Additionner élément de texte, -1=Additionner séparateur, x= Additionner id du menu unique(sous-menu)
par3: id d'élément du menu
par4: Texte d'élément du menu
Description:
Cette fonction vous permettra d'additionner des éléments au menu créé à l'aide de la fonction OleMenuCreate(). par2 décidera le type d'élément à additionner au menu :

Sipar2 est 0 un texte sera inséré dans le menu.

Si par2 est égal à -1 un séparateur (ligne de division) sera inséré dans le menu. par4 ne sera pas utilisé dans cette fonction.

Si par2 est supérieur à 0 il doit contenir un autre id de menu unique obtenu à partir de la fonction OleMenuCreate().

Le paramètre par3 doit être id du menu unique retourné quand l'utilisateur sélectionne un élément à partir du menu, et par4 contient le texte de l'élément actuel.

Valeur retour:
0=OK
-1=id illégal de ménu
Consultez aussi :
OleMenuCreate,OleMenuDestroy,OleMenuSelect
Exemple:
#51=OleMenuCreate() /* Créer le menu maître
#52=OleMenuCreate() /* Créer le menu pour les objets enrobés
#53=OleMenuCreate() /* Créer le menu pour les dimensions d'objets
OleMenuAdd(#51,#52,4000,"objets enrobés") /* Additionner le menu enrobé au menu principal
OleFillObjectMenu(#52,4001,10,"Object") /* Additionner tous les objets enregistrés au menu pour les objets enrobés
OleMenuAdd(#51,#53,5000,"Réduire l'objet selon") /* Additionner le menu de dimension de l'objet au menu maître
OleMenuAdd(#53,0,5001,"Taille de la boîte de zone") /* Additionner les éléments au menu de dimension de l'objet
OleMenuAdd(#54,0,5002,"Les dimensions de l'objet")
OleMenuSelect(#51) /* Laisser l'utilisateur faire une sélection à partir du menu
OleMenuDestroy(#51) /* Ceci libérera tous les menus créer dans #51-53


4.17. OleMenuSelect : Sélectionner à partir d'un menu et selon la position du curseur

Nombre OleMenuSelect(nombre par1)
Paramètres:
par1: id de menu unique
Description:
Cette fonction activera un menu déroulant à la position du curseur sur l'écran. Ce menu restera actif jusqu'à ce l'utilisateur sélectionne une des fonctions ou clique sur à un endroit à l'extérieur du menu .

Valeur retour:
0=Aucun élément sélectionné
x= id d'élément du menu sélectionné
-1=Id de menu illégal
Voir aussi:
OleMenuCreate,OleMenuDestroy,OleMenuAdd
Exemple:
Regardez le paragraphe consacré à la fonction OleMenuAdd


4.18. OleDialogCreate : Dialogue standard pour créer des objets enrobés ou liés

Nombre OleDialogCreate(ObjetID par1, texte par2)
Paramètres:
par1: id de l'objet unique
par2: Code de langage
DAN= Danois
ENG= Anglais
GER= Allemand
Description:
Cette fonction vous permettra de faciliter la création d'un objet

par2 est une code de langage pour contrôler le langage de dialogue utilisé.

Valeur retour:
<=0 : Ne peut pas créer ou afficher un dialogue
1 : L'utilisateur a sélectionné un lien vers un fichier. Vous pouvez trouver le nom du fichier au moyen de la fonction OleGetInfo().
>=2 : L'utilisateur a sélectionné un des objets enrobés. La valeur (-1) peut être transmise au OleEmbedded().
Voir aussi:
Exemple:
#50=OleCreate() /* Créer un nouveau objet inconnu
#51=OleDialogCreate(#50,"ENG") /* Laisser l'utilisateur sélectionner un objet lié ou enrobé à partir d'un dialogue
if #51=1 OleLinkToFile(#50,"") /* Lien vers le nom du fichier sélectionné
if #51>1 OleEmbedded(#50,1,"",#51-1,0) /* Créer un objet enrobé avec élément id du menu retourné


4.19. OleDialogFile : Dialogue standard pour la sélection d'un nom du fichier

Nombre OleDialogFile(nombre par1, texte par2, texte par3, nombre par4, texte par5, texte par6)
Paramètres:
par1: Identification de fenêtre
par2: Type de fichier
par3: Définition du filtre
par4: Fonction
0=Ouvrir
1=Enregistrer
par5: Nom du fichier
par6: Commencer le chemin
Description:
En utilisant cette fonction, vous pouvez sélectionner un nom du fichier à l'aide du dialogue de fichier standard de Windows

Vous pouvez accéder à l'identification de la fenêtre dans par1 en utilisant la sous-fonction GETINFO().

La dialogue a besoin de deux paramètres pour contrôler le filtre du nom de fichier. Le paramètre par2 est utilisé pour le type de filtre. C'est à dire que le type de filtre "ole" affichera seulement les filtres nommés "xxxxxxxx.ole". Le paramètre par3 comprend la définition du filtre y compris sa description. Vous définissiez un filtre par exemple :

"All files,*.*"

Ainsi le filtre sera défini. L'utilisateur peut sélectionner ce filtre à l'aide de la description "Tous fichiers" ou pour sélectionner tous les fichiers "*.*". Il faut séparé le filtre et la description même par une virgule, sinon un dialogue n'apparaîtra pas !

Si la fonction (par4) sera 1, le dialogue du fichier laissera l'utilisateur indiquer un nouveau nom du fichier ou sélectionner un nom du fichier existant pour l'enregistrement. Si vous sélectionnez un nom du fichier existant, vous devez confirmer que le fichier en question doit être superposé sur le contenu nouveau.

Si vous indiquez un nom du fichier dans par5 mais aucune valeur dans par6 (""Texte vide) le dialogue utilisera le chemin à partir du nom du fichier dans par5. Par exemple, si par5 est "c:/swtools/sheet.xls" le chemin du démarrage sera "c:/swtools".

Valeur retour:
0=OK
x=Utilisateur a cliqué sur Regretter ou le dialogue ne peut pas être créé
Voir aussi:
OleGetInfo
Exemple:
Voir la fonction OleGetInfo()


5. Spécifications

5.1. Conditions

L'interface OLE requière la version 007.001 de SW-Tools TRIO ou une version plus récente. Vous pouvez trouver ce module dans une version 16/ 32-bits.

5.2. Fichiers installés

     
  10.eng Description des sous-fonctions et des fonctions pour les calculs de SW-Tools TRIO
  ole-fre.hlp Manuel d'aide en ligne de Windows
  swo999xx.dll OLE Dynamic Link Library, dans lequel le numéro de la version est 999, xx 16/32 bits