Bonjour,
Ok pour ouvrir un fichier modèle pour writer avec Lazarus, mais comment affecter les variables placées dans le document depuis un programme sous Lazarus ?
Si quelqu'un peu m'aider ? Merci d'avance
Michel
Bonjour,
Ok pour ouvrir un fichier modèle pour writer avec Lazarus, mais comment affecter les variables placées dans le document depuis un programme sous Lazarus ?
Si quelqu'un peu m'aider ? Merci d'avance
Michel
hello,
je suppose que tu es sous Windows et que tu utilises l'interface COM Ole. Quel genre de variable veux-tu manipuler ? Propriétés du document ? Propriétés personnalisés ? Variable utilisateur ? Texte , entier ou date ?
Voici un bout de programme pour lire le nom des variables :
Ami calmant, J.P
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 function LireVariable(Document: Variant;Lavariable: String): Boolean; var enum, field, InputField,Master: Variant; begin enum := Document.getTextFields.createEnumeration; while enum.hasMoreElements do begin field := enum.nextElement; Master := field.getTextFieldMaster(); ShowMessage('Nom : ' + Master.name); if field.supportsService('com.sun.star.text.TextField.SetExpression') then begin ShowMessage('Type : Variable'); ShowMessage('Valeur : ' + field.content); end; if field.supportsService('com.sun.star.text.TextField.Input') then begin ShowMessage('Type : Input'); ShowMessage(field.getPropertyValue('Hint')); ShowMessage(field.getPropertyValue('Content')); field.setPropertyValue('Content', 'Test-Content'); Document.TextFields.refresh; end; if field.supportsService('com.sun.star.text.TextField.User') then begin ShowMessage('Type : User'); ShowMessage('Valeur : ' + field.getPropertyValue('Content')); end; if field.supportsService('com.sun.star.text.TextField.InputUser') then begin ShowMessage('Type : InputUser'); end; end; end;
Merci Jurassik pour ta rapidité et de ton indulgence pour mon maque de précision !
C'est bien Windows, OpenOffice, et les variables sont des chaînes pour simplifier.
La fonction que tu me fais passer trouve les variables dans le supportService 'com.sun.star.text.TextField.SetExpression' .
Maintenant, peux-tu me dire si j'ai bien compris :
Je connais les noms des variables, je dois donc pouvoir les affecter de cette manière : "Document."NomVariable".content := "ValeurVariable" ?
Je teste cette solution en attendant ta réponse
Merci encore
Michel
Partager