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
j'aimerai savoir ...
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;
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
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
j'aimerai savoir ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager