Page 1 sur 1

[Basic] Un jour, il y aura un tuto video sur XRAY!

MessagePublié: 22 Nov 2013 01:08
par martinbrait
Bonjour à tous!

xray, semble le silex indispensable à
tout programmeur qui se respecte en ooobasic.

Désolé, je galère depuis plusieurs mois
avec l'outil, en sachant à peine retourner
les propriétés string pour les insérer à
mes programmes.

Bref, Jean NIGAUD, je suis condamné à réutiliser
perpétuellement des
sous-programmes effectués par les autres
pour les assembler, sans savoir comment améliorer les
scripts que je récupère, et sans en créer par moi-même. :fou:

Un tp vidéo youtube 20-30 minutes, décrivant l'utilisation
pas à pas, des 5 sous-menus
[Propriétés, Méthodes, Services, Interfaces, Listeners] pour élaborer un petit programme
genre calculatrice avec GUI (boutons d'interface) seraient d'un grand secours!

Voici le lien le plus utile que j'ai trouvé :
http://openoffice-libreoffice.developpe ... fice/xray/

Je pourrais enfin contribuer en programmant
des classes, pour la communauté.

M E R C I!

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 22 Nov 2013 05:09
par Churay
Bonjour,

Voilà donc une formulation plus fonctionnelle.

xray, semble le silex indispensable à tout programmeur qui se respecte en ooobasic.

XRay est incontournable pour aller chercher la substantifique moelle dans les méandres de l'API (expert ou pas).
Comme il est utile pour découvrir l'API, en connaître quelques pans, l'apprivoiser.

XRay est déroutant au départ, entre autres pour celles et ceux qui n'ont pas une culture objet (si, si ça existe) et ils s'y sont adaptés.
Concernant la réalisation d'un mini tuto, c'est en cours mais, à ma connaissance il ne sera pas vidéo. Et bien évidemment ce ne sera pas un guide utilisateur, juste une intro à la manipulation.
Ensuite son auteur, même s'il utilise XRay au quotidien rencontre quelques difficultés non négligeables :
    - comment partir de l'inconnu et faire taire des automatismes pour en expliquer la logique
    - comment formuler, même si la prétention n'est pas de rivaliser avec nos spécialistes des FAQ | HowTos et autres documentations, il faut quand même obtenir un minimum de lisibilité
    - comment s'affranchir de l'irl

La connaissance de Basic et de l'API, en plus de la Bible passe aussi par, même s'il n'a pas été écrit pour Basic, le Developer's Guide aide à comprendre, mais il n'est toujours pas traduit (la taille du pavé est une des raisons, et des considérations bassement irl en ont freiné l'avancement.

Dans ton précédent messages, as joint la partie Outils et ressources tirée de la Bible. Si l'on reprend l'exemple :
Code : Tout sélectionner   AgrandirRéduire
monDocument = thisComponent
lesFeuilles = monDocument.Sheets
maFeuille = lesFeuilles.getByName("Janvier")
xray maFeuille
XRay affiche l'objet représentant maFeuille. Si l'on souhaite avoir l'affichage d'un objet représentant la ligne 10, on le lui demandera avec
Code : Tout sélectionner   AgrandirRéduire
xray maFeuille.rows(9)
ou en créant l'objet concerné
Code : Tout sélectionner   AgrandirRéduire
maLigne = maFeuille.rows(9)
que l'on fait afficher ensuite
Code : Tout sélectionner   AgrandirRéduire
xray maLigne
.

Pour en revenir à nos moutons, un tuto va bientôt apparaître, il ne sera pas en vidéo et l'auteur n'étant pas un expert, cela vaudra que que ça vaudra...

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 22 Nov 2013 21:43
par OOo - Ekel
Bonsoir,

Et pourquoi ne pas t'y mettre à cette vidéo, au moins tu comprendrais le fonctionnement de Xray... si tu parviens à la faire cette vidéo, c'est que tu auras tout compris.

Cordialement.

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 24 Nov 2013 15:59
par alhazred
Bonjour,

XRay ne permet que d'explorer un objet que tu as déjà obtenu dans le programme :
Code : Tout sélectionner   AgrandirRéduire
XRay monObjet

ouvre la fenêtre.

Elle liste les propriétés et les méthodes utilisables pour cet objet
Un double-clic sur l'une des propriétés affiche en cascade le nouvel objet concerné (propriétés, etc.)
Si tu as installé le SDK et renseigné les Options, un bouton présente la fiche complète de la rubrique sélectionnée.

C'est à peu près tout ce qu'il y a à savoir pour débuter.

Les autres volets (Services, Interfaces, Listeners) sont rarement utilisés, seulement dans un but précis.

Par exemple, la liste des services permet de faire des tests pour déterminer la nature exacte d'un objet : dans Calc, l'objet ThisComponent.currentSelection peut être une cellule, une zone de cellules, plusieurs zones de cellules, des contrôles...
Tu peux alors insérer dans ton programme des tests du genre
Code : Tout sélectionner   AgrandirRéduire
If ThisComponent.currentSelection.SupportsService("le_service_voulu") Then ....

Cela évite des erreurs d'exécution (propriété ou méthode inexistante dans l'objet considéré)

Et la meilleure méthode est de mettre les mains dans le cambouis et d'essayer (faut pas avoir peur des erreurs qui apprennent beaucoup plus que les succès).

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 05 Déc 2013 00:36
par martinbrait
Bonsoir!

Le document joint, m'a été TRES utile, notamment, pour la description détaillée de l'utilisation d'xray
Qualité rédactionnelle,approche PAS à PAS.C'est exemplaire!

Tester xRay

Pour tester xRay, il faut utiliser dans un programme la commande « xray » suivi de l’objet à analyser.

Cette ligne analyse l’objet « thisComponent » et on pourra retrouver la propriété « sheets »

xray thisComponent

Cette ligne analyse l’objet « Sheets » et on pourra retrouver la méthode « getByName »

xray thisComponent.Sheets

Cette ligne analyse l’objet « getByName("Feuille1") » et on pourra retrouver la méthode « getCellRangeByName »

xray thisComponent.Sheets.getByName("Feuille1")

Cette ligne analyse l’objet « getCellRangeByName("A1") » et on pourra retrouver la propriété « string »

xray thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("A1")


Ce serait génial, d'avoir le même genre de tuto pour les INTERFACES, SERVICES et LISTENERS.

A bon entendeur!

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 06 Déc 2013 15:05
par Dude
Salut,

martinbrait a écrit:Ce serait génial, d'avoir le même genre de tuto pour les INTERFACES, SERVICES et LISTENERS.

A priori, tu n'as pas compris ce qu'était un projet libre.
Ce n'est pas aux autres de réaliser ce dont tu as besoin.
En clair, c'est à toi de démarrer une trame de document.
Document qui pourra être éventuellement complété par des bénévoles.

martinbrait a écrit:A bon entendeur!

Bin salut !

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 17 Déc 2013 01:45
par martinbrait
Petite contribution du jour, pour mieux comprendre les interactions UNO.
Je rêve du moment où un expert OOObasic montrera aux autres
comment manipuler xray sous tous ses aspects, dans une petite appli.!

Pas moyen de faire des tests de l'api, avec les retours xray.
A quoi ça sert de confier un super outil, sans laisser de mode d'emploi ultra vulgarisé? :marto:

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 17 Déc 2013 06:36
par OOo - Ekel
Bonjour,

<Humour>Mais n'y aura-t-il pas alors quelqu'un pour demander comment fonctionne l'application qui permet d'expliquer comment fonctionne l'application qui permet d'expliquer comment fonctionne l'application qui... ? </Humour>

Cordialement.

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 18 Déc 2013 17:13
par Dude
Pourquoi mettre en ligne un PDF ?

Dude a écrit:Document qui pourra être éventuellement complété par des bénévoles.

Je parle d'un document dans un format ouvert et modifiable.

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 31 Déc 2013 13:52
par martinbrait
Dois je déduire que dans ce forum, personne n'a jamais osé se confronter
aux Services, Interfaces, Listeners, via xRay, pour coder ses applications? :cry: :aie:

Bonjour, merci et à bientôt.

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 31 Déc 2013 16:25
par alhazred
Bonjour,

Bien évidemment que si (plus ou moins, tous ceux qui interviennent dans la section Macros), mais apparemment, cela n'intéresse personne de faire un travail sur commande, suis-je clair ?

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

MessagePublié: 27 Oct 2015 20:40
par martinbrait
Mon problème est le suivant :
Quand j'ouvre une page du sdk, c'est comme si j'ouvrais un listing des cours de la bourse. :fou:
SDK=FRUSTRATION
Comment suis-je informé du type de valeur à envoyer dans l'objet que je suis en train d'explorer,
ou dans les propriétés de l'objet que je suis en train d'explorer ?
objet, structure, tableau, variable ?

'première approche, le 05/05/2016


'0) mon objectif :
PageStyle.FirstPageNumber.JPG
objectif

'Je cherche juste à afficher/régler sur 5, mon numéro de première page de feuille à imprimer.

prérequis :
Je cherche dans la doc en version anglaise, le nom de la propriété que je souhaite programmer.
FirstPageNumber
'contains the page number applied to the first page for this sheet

'1) Je tape dans l'explorateur en haut à droite du site sdk les mots clef de mon choix "first page",
pour avoir peut être une ressource qui me permette de manipuler le réglage de la première page,
vu que je cherche à régler la première page.
http://api.libreoffice.org/docs/idl/ref ... Style.html

'2) je trouve sur le site une propriété FirstPageNumber,(dans la classe PageStyle) qui semble faire ce que j'attends.
' Celle-ci a besoin d'une instanciation du service "PageStyle"

'3) Ne comprenant rien au labyrinthe des instanciations de services et interfaces,
Je cherche un exemple de code d'un expert, qui contienne le service PageStyle,
(dans la bible ProgrammationOpenOffice 3 de Bernard MARCELLY.)

'voici une aide de Bernard Marcelly, pour gérer vraiment un style de page
Code : Tout sélectionner   AgrandirRéduire
rem Code09-07.ods bibli : Haut_Bas Module1
'Option Explicit
Sub InsererUnEnTete()
Dim monDocument As Object, lesFeuilles As Object
Dim maFeuille As Object, enTete As Object
Dim Texte2 As Object, Curseur2 As Object
Dim nomStyleMaPage As String, StyleMaPage As Object
Dim stylesPage As Object
monDocument = ThisComponent
'la récupération de la référence de la feuille de mon choix passe nécessairement par l'exploration de la collection.
lesFeuilles = monDocument.Sheets
maFeuille = lesFeuilles.getByName("Feuille4")
' récupérer le nom du style de page en cours
nomStyleMaPage = maFeuille.PageStyle
print "Cette page est du style : " & nomStyleMaPage
' récupérer la collection de styles de pages
stylesPage = monDocument.StyleFamilies.getByName("PageStyles")
' récupérer le style de page
StyleMaPage = stylesPage.getByName(nomStyleMaPage)
StyleMaPage.HeaderIsOn = true ' insérer un en-tête
StyleMaPage.HeaderBodyDistance = 1000 ' 10 mm
StyleMaPage.HeaderHeight = 2500 ' 25mm
' l'en-tête page droite est aussi utilisé pour la gauche
enTete = StyleMaPage.RightPageHeaderContent
Texte2 = enTete.LeftText' zone de texte gauche de l'en-tête
Curseur2 = Texte2.createTextCursor ' curseur dans l'en-tête
' écrire un texte dans l'en-tête
Texte2.insertString(Curseur2, "Voici un en-tête", false)
StyleMaPage.RightPageHeaderContent = enTete' mettre à jour
End Sub



'4) J'écris un début de code, en me calant sur celui
de Bernard M. pour y mettre en oeuvre ma propriété FirstPageNumber

Code : Tout sélectionner   AgrandirRéduire
Sub Main
Dim monDocument As Object, oOriginal As Object, oCurseur as Object
Dim lesFeuilles As Object, maFeuille As Object
Dim oCell As Object, oCopy As Object, oZone As Object, oCible As Object
Dim oFirstPageNumber As Integer
Dim oPageStyle As Object,oStyle As Object
Dim nomStyleMaPage As String
Dim stylesPage As Object
Dim StyleMaPage As Object

Dim monTexte() as String
   monDocument = ThisComponent
   lesFeuilles = monDocument.Sheets
   maFeuille = lesFeuilles.getByName("Feuille1")

'   MsgBox oDoc.Sheets.getByIndex(0)   
'   Msgbox thisComponent.CurrentSelection.RangeAddress.Sheet
   
'xray monDocument 'Je trouve un soit-disant "service disponible", via xray, à partir de mon objet monDocument.
'xray maFeuille
'xray oPageStyle

'   Je postule que  Spreadsheet mis en mémoire sous oDoc contiendrait com.sun.star.table.style.PageStyle comme service déjà instancié ?

'méthode à suivre pour tout ce qui suit :
'1)Mettre en mémoire une première variable objet
'2)Créer une instance du service souhaité, à partir de l'objet.

sous-objectif : Je dois obligatoirement récupérer le nom du style de la page considérée pour interagir avec.
Attention, FirstPageNumber s'applique à la feuille de style !

maFeuille = lesFeuilles.getByName("Feuille1")
' récupérer le nom du style de page en cours
nomStyleMaPage = maFeuille.PageStyle
print "Cette page est du style : " & nomStyleMaPage
' récupérer la collection de styles de pages
Avant d'accéder à la feuille de style de ma page considérée, il faut passer par une collection des styles de page du classeur.
stylesPage = monDocument.StyleFamilies.getByName("PageStyles")
' récupérer le style de page
StyleMaPage = stylesPage.getByName(nomStyleMaPage)

xray nomStyleMaPage
StyleMaPage.FirstPageNumber=5'mettre la première page à 5

xray nomStyleMaPage
MsgBox StyleMaPage.FirstPageNumber

End Sub


'5) Eurêka, je viens d'optimiser(?) 3 heures de ma vie. Tout ça pour ça, eh bé, mon ami... :mrgreen:

Re: [Basic] Xray, un expert peut-il faire un tp video?

MessagePublié: 05 Déc 2016 23:51
par jeanmi2403
Bonjour,
martinbrait a écrit:Petite contribution du jour, pour mieux comprendre les interactions UNO.

La moindre politesse, et de respect du travail d'autrui, voudrait que tu cite tes sources....
Ta "petite contribution" est en fait l'oeuvre de Marc FEGLI
A moins qu'il ne s'agisse d'un dédoublement de personnalité....
En tout cas, cet extrait fait partie d'un bouquin plus vaste qui présente certainement un grand intérêt, mais que je n'ai pas réussi à identifier.
Je rêve du moment où un expert OOObasic montrera aux autres
comment manipuler xray sous tous ses aspects, dans une petite appli.!

Je fais ça, avec python, mais ça n'a rien de compliqué, me semble-t-il.
Désolé, je galère depuis plusieurs mois avec l'outil, en sachant à peine retourner les propriétés string pour les insérer à mes programmes.

Toutes les propriétés sont accessibles par des méthodes, parfaitement décrites dans XRAY.
Voici le lien le plus utile que j'ai trouvé : http://openoffice-libreoffice.developpe ... fice/xray/

Tout y est dit !!
Cordialement,

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

MessagePublié: 06 Déc 2016 01:23
par OOotremer971
Bonjour,
@jeanmi2403
Apparemment il y a un soucis avec le lien tel qu'il est rédigé dans ton message. Je crois que c'est là :
http://openoffice-libreoffice.developpez.com/tutoriels/openoffice-libreoffice/xray/

A+

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

MessagePublié: 06 Déc 2016 11:18
par jeanmi2403
Bonjour OOotremer971
En fait, j'ai tronqué le lien du post de martinbrait en le citant.
Cordialement,