Difference between revisions of "FR/Documentation/Composants et boite de dialogue"
SergeMoutou (Talk | contribs) m (→Ajouter une boîte de dialogue au compteur du Basic mais sans le Basic) |
SergeMoutou (Talk | contribs) m |
||
Line 1: | Line 1: | ||
− | Nous allons réaliser une boîte de dialogue pour faire fonctionner notre [[FR/Documentation/Construire_des_composants#Utilisation_d.27une_aide_.28helper.29_pour_construire_le_composant_scriptable|compteur]]. L'idée est d'utiliser l'environnement [[FR/Documentation/BASIC_Guide|OOoBasic]] pour cela, car il est aisé d'y gérer des [[FR/Documentation/BASIC_Guide/Dialogs|boîtes de dialogue]]. Comme on va le voir tout au long de ce chapitre, il existe plusieurs méthodes pour | + | Nous allons réaliser une boîte de dialogue pour faire fonctionner notre [[FR/Documentation/Construire_des_composants#Utilisation_d.27une_aide_.28helper.29_pour_construire_le_composant_scriptable|compteur]]. L'idée est d'utiliser l'environnement [[FR/Documentation/BASIC_Guide|OOoBasic]] pour cela, car il est aisé d'y gérer des [[FR/Documentation/BASIC_Guide/Dialogs|boîtes de dialogue]]. Comme on va le voir tout au long de ce chapitre, il existe plusieurs méthodes pour faciliter l'utilisation d'un composant à l'aide des [[FR/Documentation/BASIC_Guide/Dialogs|boîtes de dialogue]]. La première solution que l'on se propose d'examiner consiste à ne rien changer du code C++ du composant mais à enrober ce code par du OOoBasic. |
=Ajouter une boîte de dialogue au compteur avec le Basic= | =Ajouter une boîte de dialogue au compteur avec le Basic= |
Revision as of 11:49, 16 May 2009
Nous allons réaliser une boîte de dialogue pour faire fonctionner notre compteur. L'idée est d'utiliser l'environnement OOoBasic pour cela, car il est aisé d'y gérer des boîtes de dialogue. Comme on va le voir tout au long de ce chapitre, il existe plusieurs méthodes pour faciliter l'utilisation d'un composant à l'aide des boîtes de dialogue. La première solution que l'on se propose d'examiner consiste à ne rien changer du code C++ du composant mais à enrober ce code par du OOoBasic.
Ajouter une boîte de dialogue au compteur avec le Basic
Rappelons pour information que notre compteur dispose de quatre méthodes :
- increment
- decrement
- setCount
- getCount
On va donc chercher à réaliser une boîte de dialogue qui va proposer un bouton par méthode. Elle proposera d'autre part deux champs texte :
- un champ texte pour positionner une valeur dans le compteur (donc associé au bouton setCount)
- un champ texte pour afficher la valeur du compteur (donc associé au bouton getCount)
Pour se faire une idée de quoi il s'agit, voici une image de la boîte de dialogue
Pour faire fonctionner l'ensemble on peut tout simplement utiliser le code OOoBasic suivant :
REM ***** BASIC ***** Dim oSimpleComponent Dim oDialog Sub demonstrateSimpleComponent oSimpleComponent = CreateUnoService( "foo.Counter" ) 'oInspector = createUnoService("org.openoffice.InstanceInspector") 'oInspector.inspect(oSimpleComponent, "MyCounter") 'XRay oSimpleComponent oDialog=CreateUnoDialog(DialogLibraries.Standard.Dialog1) oDialog.Execute() oDialog.dispose() End Sub Sub increment oSimpleComponent.increment() End Sub Sub decrement oSimpleComponent.decrement() End Sub Sub getCount Dim oTextField oTextField = oDialog.getControl("TextField2") oTextField.setText( oSimpleComponent.getCount()) End Sub Sub setCount Dim oTextField oTextField = oDialog.getControl("TextField1") 'implicit conversion String to Integer oSimpleComponent.setCount(oTextField.getText()) End Sub
Dans ce programme on a laissé en commentaire les différentes façons de réaliser l'introspection sur notre compteur, mais ceci n'a pas grand intérêt pour ce qui nous préoccupe. Template:Documentation/Note
Ajouter une boîte de dialogue au compteur mais sans le Basic
Comme indiqué dans leDeveloper's Guide, depuis la version 2.0.4 il est possible d'associer directement des méthodes d'un composant et des boutons (ou autres contrôles). Une autre façon de dire les choses, c'est que l'enrobage que l'on a utilisé dans la section précédente du genre :
REM ***** BASIC ***** Sub increment oSimpleComponent.increment() End Sub
n'est plus nécessaire. Mais ceci a un coût : on ne pourra pas toujours garder le composant sans en modifier le code C++.