Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Bonsoir,

Le 16/02/2018 à 17:14, kadeem13 a écrit :
Merci pour votre réponse. Pour être précis j'aime créer un plugin pour libre
office pour qui il prendra en charge l'arithmétique d'intervalle. Donc au
lieu de faire des calculs avec des nombres, on fera des calculs avec des
intervalles. Et pour cela il faut créer un type intervalle. Exemple
d'opération entre 2 intervalles : [a,b] + [c,d] = [a+c,b+d].

je plussoie les réponses de Jean-Michel et de Didier. Passer par un type personnalisé semble la bonne voie.

Un "type personnalisé" dans LibO Basic correspond à ce qui s'appelle en Pascal un Record et une Structure en C.

Comme indiqué par Didier, un type personnalisé n'est connu que dans le module où il est déclaré :

par ex

Type MonType
        Item As String
        Valeur As Integer
        Ok As Boolean
End Type

ne peut pas être référencé ailleurs (dans d'autres modules de la même bibliothèque ou dans d'autres bibliothèques). Dans ces cas (assez fréquents somme toute), il faut référencer ce type comme Object ou Variant.

Pour créer une variable de ce type dans un autre module, il faut donc ruser en passant par une fonction "factory". Il suffit donc de créer, dans le même module que celui où le type personnalisé est lui-même déclaré, une fonction comme ceci :

Function CreateMonType() As MonType

        Dim oType As MonType

        CreateMonType = oType

End Function

et appeler cette fonction de n'importe où dans le code :

Dim oMonType As Object
...
oMonType = CreateMonType()

Notez que vous pouvez initialiser des valeurs lors de la création. Yaka passer des paramètres ad hoc à la fonction de création.


Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux


--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.