Accueil Fonctions Calc Menu Basic EDI OOo 1.x EDI OOo 2.x EDI LibO - OOo 3.x Affectation touche Affectation icône Etape par étape Macro débutant Fonctions Basic Dialogues OOo1-2 Dialogues LibO-OOo3 Quelques exemples Exemples dialogue Fonctions perso Définitions Recherche sur site


Boîtes de dialogues. Carte du club 2/3

 




Accès direct pages : Petit test 1/2, Petit test 2/2, Nuancier, Carte club 1/3, Carte club 2/3, Carte club 3/3,


 

Vous avez lu la page précédente ? Allons-y.

Abordons maintenant le champ date , DateField et ses avantages. Avec l'option Déroulante sur Oui, une flèche à droite de la zone de saisie permet de dérouler un mini-calendrier bien pratique.

Par défaut, il s'ouvre à la date du jour. Vous pouvez sélectionner cette date, une autre, aucune en cliquant sur Aucun/e, ou si vous êtes sur une autre date, cliquer sur Auj. pour revenir à la date du jour. De plus les mini-flèches droite et gauche du titre mois et année permettent un changement rapide des mois et années.

En survolant une date, le numéro du jour dans l'année et le numéro de semaine apparaîssent dans un bulle d'information.

En cliquant sur la barre contenant le mois et l'année, apparaît un sous-menu avec l'année précédente, l'année en cours, l'année future.

En cliquant sur la barre contenant le mois et l'année, apparaît un sous-menu avec l'année précédente, l'année en cours, l'année future. Un clic sur une de ces années affiche les mois de l'année, qu'il suffira de sélectionner.

 

 

 

Dialog007.3 (partiel)

 

  1. Sub CarteClub
  2.   Dim oDialog As Object, oPDialog As Object
  3.   Dim oTxt As Object
  4.   Dim ChampNom As Object
  5.   Dim oListBox As Object
  6.   '
  7.   DialogLibraries.LoadLibrary("Standard")
  8.   oDialog = DialogLibraries.Standard.Dialog1
  9.   oPDialog = CreateUnoDialog(oDialog)
  10.   '
  11.   exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
  12.   '
  13.   ' Méthode 1
  14.   oTxt = oPDialog.getControl("Label1")
  15.   oTxt.Text = "Nom"
  16.   oTxt.Model.Align = 2
  17.   '
  18.   ' Méthode 2
  19.   oPDialog.getControl("Label2").Text = "Prénom"
  20.   oPDialog.getControl("Label2").Model.Align = 2
  21.   '
  22.   ' Méthode 3
  23.   With oPDialog.getControl("Label3")
  24.     .Text = "Valable jusqu'au"
  25.     .Model.Align = 1 'centré
  26.   End With
  27.   '
  28.   With oPDialog.getControl("Label4")
  29.     .Text = "Catégorie"
  30.     .Model.Align = 1 'centré
  31.   End With
  32.   '
  33.   oPDialog.setTitle("Carte du club") ' Titre boîte dialogue
  34.   '
  35.   ' Insertion image
  36.   oImage = oPDialog.getControl("ImageControl1")
  37.   Chemin = "file:///C:/Mes tests macros/Exemple Carte Club/"
  38.   Image = "Dialog_031.png"
  39.   CheminImage = Chemin & Image
  40.   oImage.Model.ImageURL = CheminImage
  41.   oImage.Model.ScaleImage = False
  42.   '
  43.   ' Date
  44.   oPDialog.getControl("DateField1").setDate(CDateToIso(Date))
  45.   '
  46.   ' Sexe
  47.   oPDialog.getControl("OptionButton1").setLabel("masculin")
  48.   oPDialog.getControl("OptionButton2").setLabel("féminin")
  49.   '
  50.   oPDialog.Execute()
  51. End Sub

 

Ligne 44, non indispensable, on affiche la date du jour par défaut. Attention, il faut utiliser les fonctions CDateToIso et Date ensembles. Il est possible de créer automatiquement la date de validité de un an, par exemple comme suit :

oPDialog.getControl("DateField1").setDate(CDateToIso(DateValue(Date)+365))

 

 

Lignes 47 et 48 nous inscrivons les textes de bouton radio. A noter qu'aucun des 2 boutons radio ne sont cochés par défaut. Nous aurions pu le faire avec cette instruction :

oPDialog.getControl("OptionButton1").State = True

Qui coche le premier bouton, puisque la valeur est True (Vrai). C'est l'équivalent de Status, Sélectionné des Propriétés de bouton radio.

 

STOP Que se passera t'il si nous inscrivons les 2 lignes suivantes ?

oPDialog.getControl("OptionButton1"). State = True
oPDialog.getControl( "OptionButton2").State = True

Réponse

Seul le 2ème bouton sera coché, puisque le fait de sélectionner un bouton désélectionne automatiquement les autres. D'où ces 2 instructions contradictoires. Un seul bouton à True suffit. Une instruction False est donc inutile, sauf pour désélectionner un autre bouton radio.

 

 

 

 

 

Dialog007.4 (partiel)

 

  1. Sub CarteClub
  2.   Dim oDialog As Object, oPDialog As Object
  3.   Dim oTxt As Object
  4.   Dim ChampNom As Object
  5.   Dim oListBox As Object
  6.   Dim CategorieClub(3) As String
  7.   '
  8.   DialogLibraries.LoadLibrary("Standard")
  9.   oDialog = DialogLibraries.Standard.Dialog1
  10.   oPDialog = CreateUnoDialog(oDialog)
  11.   '
  12.   exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
  13.   '
  14.   ' Méthode 1
  15.   oTxt = oPDialog.getControl("Label1")
  16.   oTxt.Text = "Nom"
  17.   oTxt.Model.Align = 2
  18.   '
  19.   ' Méthode 2
  20.   oPDialog.getControl("Label2").Text = "Prénom"
  21.   oPDialog.getControl("Label2").Model.Align = 2
  22.   '
  23.   ' Méthode 3
  24.   With oPDialog.getControl("Label3")
  25.     .Text = "Valable jusqu'au"
  26.     .Model.Align = 1 'centré
  27.   End With
  28.   '
  29.   With oPDialog.getControl("Label4")
  30.     .Text = "Catégorie"
  31.     .Model.Align = 1 'centré
  32.   End With
  33.   '
  34.   oPDialog.setTitle("Carte du club") ' Titre boîte dialogue
  35.   '
  36.   ' Insertion image
  37.   oImage = oPDialog.getControl("ImageControl1")
  38.   Chemin = "file:///C:/Mes tests macros/Exemple Carte Club/"
  39.   Image = "Dialog_031.png"
  40.   CheminImage = Chemin & Image
  41.   oImage.Model.ImageURL = CheminImage
  42.   oImage.Model.ScaleImage = False
  43.   '
  44.   ' Date
  45.   oPDialog.getControl("DateField1").setDate(CDateToIso(Date))
  46.   '
  47.   ' Sexe
  48.   oPDialog.getControl("OptionButton1").setLabel("masculin")
  49.   oPDialog.getControl("OptionButton2").setLabel("féminin")
  50.   '
  51.   CategorieClub(0) = "débutant"
  52.   CategorieClub(1) = "amateur"
  53.   CategorieClub(2) = "passionné"
  54.   CategorieClub(3) = "professionnel"
  55.   '
  56.   ' Catégories ListBox
  57.   oListBox = oPDialog.getControl("ListBox1")
  58.   oListBox.addItems(CategorieClub(),0)
  59.   '
  60.   oPDialog.Execute()
  61. End Sub

 

Interessons-nous maintenant aux différentes catégories du club. C'est ici réduit à la plus simple expression. Nous insérons en ligne 5 la déclaration des 4 cas (de 0 à 3).

Les lignes 51 à 54 sont faciles à comprendre.

En ligne 58, addItems (avec un s) permet de remplir la liste d'un bloc, depuis la première ligne.

Remarque Vous devez veiller à ne pas répéter cette instruction (ligne 58), la liste se complétant à la suite de ce qui existe, ou plus précisément à l'emplacement indiqué. Faites un test et remplacez la valeur 0 par 2 (par exemple) dans la 2ème instruction.

 

Regardons maintenant de plus près d'autres méthodes pour arriver à un résultat identique.

' Ecritures possibles addItem
oListBox.addItem( "débutant", 0)
oListBox.addItem("amateur", 1)
oListBox.addItem(CategorieClub(2), 2)
oListBox.addItem(CategorieClub(3), 3)

Ces 4 lignes utilisent addItem (sans s) et remplacent la ligne 58. Les 2 premières et 2 dernières lignes font la même chose, mais écrites différement.

 

 

 

STOP Nous venons de traiter de beaucoup de choses, mais nos boutons ne portent toujours pas les textes OK et Annuler.

Réponse Oui, vous savez faire. C'est simple avec :

 

oPDialog.GetControl("CommandButton1"). Label ="OK"
oPDialog.GetControl("CommandButton2").Label ="Annuler"

 

suite, page suivante.

 


 


 

Ce site n'est plus mis à jour. Merci aux nombreux visiteurs depuis 2003. Consultez le Wiki LibreOffice.
   

Le tableur Calc par l'exemple : christianwtd@free.fr
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France License.

  .

Site optimisé pour Firefox

Dernière modification : 13/09/2010 à 15h35


Déjà plusieurs visites sur ce site depuis quelque temps (au moins vous et moi)

Compteur non certifié