original in es Jonás Alvarez
es to en Miguel Alfageme Sánchez, Samuel Landete Benavente.
en to fr Laurent RICHARD.
Jonás Alvarez a travaill� comme d�veloppeur d'application pour les environnements UNIX et Windows pendant de nombreuses ann�es. Il donne, en autres, diff�rents cours sur les syst�mes d'exploitation, les r�seaux et le d�veloppement.
Gambas est l'un des programmes de Basic, disponibles actuellement pour Linux. Dans cet article, nous allons d�velopper un exemple dans lequel nous constaterons que Gambas est simple et puissant pour les t�ches quotidiennes.
Un des langages de programmation le plus simple et le plus complet, destin� principalement aux d�butants, est sans conteste le Basic. Jusqu'� pr�sent, l'environnement le plus courant pour le d�veloppement d'application en Basic est l'IDE Visual Basic de Microsoft. Actuellement, Linux se propage de plus en plus sur le bureau de l'utilisateur. Avant limit� aux seuls serveurs et utilis� par des gourous, il est devenu un syst�me d'exploitation pour les ordinateurs clients donnant une r�ponse aux besoins tels la consultation des courriers �lectroniques, la navigation sur Internet ainsi que l'�dition de texte. En suivant cette tendance, de nombreux environnements de d�veloppement en Basic sont actuellement accessibles. Gambas, que nous allons �tudier dans cette article, est un des ces environnements graphique pour le BASIC. Avec un style de programmation similaire � celui du Visual Basic, que nous verrons plus tard, il poss�de �galement ces propres diff�rences. La version que je vais utiliser est la 0.64a, incluse dans ma distribution SuSE 9.0. En lisant ces lignes, vous pourrez voir sur la page du projet de Gambas que la derni�re version est la 0.81. Mais cela ne devrait pas affecter notre article.
En tant que d�veloppeur d'applications en Visual Basic pendant un moment, je n'ai eu besoin que de lancer l'application pour m'y retrouver et d�velopper l'exemple de cet article. De plus, c'est la premi�re fois que j'utilise Gambas. Cela prouve que quiconque ayant d�j� travaill� avec Visual Basic peut l'utiliser. Pour le reste, il est un exemple de la simplicit� avec laquelle le Basic peut �tre simple et utile pour pas mal de choses.
Vu que j'aime apprendre en pratiquant, nous allons d�buter avec un exemple. C'est une application tr�s simple qui affiche un chronom�tre avec un d�compte � l'�cran. Nous pouvons modifier le temps, l'arr�ter et le lancer quand nous le d�sirons.
Juste apr�s avoir lanc� Gambas, nous faisons la connaissance de son assistant:
Nous choisissons New Project. Dans la fen�tre suivante, on nous demande le nom du projet. Notre projet s'appellera CountDown. Sur la deuxi�me bo�te de dialogue, nous devons choisir le r�pertoire du projet. Nous s�lectionnons notre r�pertoire de travail et nous �crivons le nom du r�pertoire dans lequel nous allons travailler dans la zone de texte du bas.
Si c'est la premi�re fois que nous d�marrons Gambas ou si nous n'avons pas d�sactiv� l'option, nous verrons l'astuce du jour. Nous lisons ce qui nous int�resse et nous fermons la fen�tre. Nous sommes d�j� dans l'environnement, pr�t � travailler. Nous pouvons voir plusieurs fen�tres sur notre bureau. Si nous sommes dans un environnement comme KDE avec plusieurs fen�tres, nous pourrions �tre int�ress�s � en allouer une � Gambas et donc avoir toutes ses fen�tres sous contr�le. Personnellement, une des premi�res options que j'active dans KDE est celle permettant � chaque bureau de n'afficher que ces propres ic�nes.
Nous allons cr�er le formulaire principal de l'application. Pour cela, nous allons faire un clic-droit sur n'importe quelle partie de la fen�tre du projet et cr�ons un nouveau formulaire.
Dans la bo�te de dialogue, nous indiquons le nom du formulaire (dans notre cas FCountDown) avec toutes les valeurs qui sont laiss�es par d�faut.
Nous avons d�j� notre premier formulaire qui est vide jusqu'� pr�sent.
Nous allons inclure ici les contr�les pour notre chronom�tre. Nous allons cliquer sur les �l�ments de la barre d'outils que nous allons inclure dans notre formulaire. Nous pouvons voir leur nom si nous d�pla�ons la souris au dessus de chaque contr�le. Au moyen d'un double clic, le contr�le sera positionn� � l'extr�mit� gauche de notre formulaire. Avec un simple clic, nous allons changer sa taille et le positionner dans la partie du formulaire vers laquelle nous le destinons. Pour notre programme, nous allons avoir besoin d'une �tiquette, une zone de texte, une minuterie, trois boutons dont un bouton � bascule.
Une fois que tous les contr�les sont en place, nous devrions avoir quelque chose qui ressemble � ceci (plus ou moins, chacun des contr�les pouvant �tre positionn� n'importe o�) :
Une fois que nous avons les contr�les dans notre formulaire, nous allons changer les noms de ceux-ci pour avoir quelque chose qui a du sens pour nous. Pour cela, nous �ditons la propri�t� Name sur la feuille des propri�t�s. Si nous ne voyons pas la feuille des propri�t�s sur l'�cran, nous pouvons l'activer depuis la fen�tre du projet avec le bouton de propri�t�s. Pour le trouver nous pouvons bouger la souris au dessus des boutons afin de localiser celui qui nous int�resse.
Je nomme le contr�le Label1 en lblContador:. Je clique sur le contr�le et ensuite, je change son nom dans la feuille des propri�t�s. Pour cela, j'�dite la propori�t� Nom et je lui donne lblContador comme valeur. Apr�s cela, je change son type de police pour en avoir une plus grande. Pour cela, dans le bouton ... dans sa propri�t� police, je choisis le type de police Courier Bold 72 et j'accepte (OK). De la m�me fa�on, je change le nom ToggleButton1 en tglFuncionando. Le contr�le TextBox1 devient txtSegundos, le contr�le Timer1 devient clkMiReloj, Button1 devient cmdPonerSegundos et pour finir, je renomme Button2 en cmdSalir. A cot�, je change l'Alignement de txtSegundos en Droit.
Et nous commen�ons avec le code Basic. C'est tr�s simple et pas tr�s strict du point de vue syntaxique. Ce que nous ferons d'abord, c'est changer les textes que nous voyons dans le formulaire en des valeurs plus r�elles. M�me si beaucoup des options sont chang�es en Basic, nous pourrions faire cela dans chacune des feuilles de propri�t�s des contr�les. L'une ou l'autre des options donnera le m�me r�sultat.
D�s que le formulaire s'ouvre, nous remplissons les titres que nous d�sirons pour chaque contr�les que nous avons. Lorsque nous disons d�s que le formulaire s'ouvre, nous parlons de la gestion d'un �v�nement : l'ouverture du formulaire. Pour cela, nous faisons un double-clic dans une partie du formulaire qui n'a pas de contr�le. Une fen�tre d'�dition s'ouvre et le curseur est situ� dans une nouvelle proc�dure : Public Sub Form_Open() (si vous avez d�j� programm� auparavant dans Visual Basic, nous devrions utiliser l'�v�nement Form_Load). Nous allons faire que le contr�le lblContador nous montre les secondes restantes du d�compte. Les premi�re lignes de code de la classe formulaire ressemble � cela :
' Gambas class file CONST fSegundosPorDefecto AS Float=120.0 fSegundos AS Float PRIVATE SUB VerValores() DIM nMinutos AS Integer nMinutos = Int(Int(fSegundos) / 60) lblContador.Caption = nMinutos & ":" & Format (fSegundos - nMinutos * 60, "00.0") END PRIVATE SUB VerActivarDesactivar() IF tglFuncionando.Value THEN tglFuncionando.Text = ("&Detener") ELSE tglFuncionando.Text = ("&Arrancar") ENDIF END PUBLIC SUB Form_Open() fSegundos = fSegundosPorDefecto VerValores tglFuncionando.Value = FALSE VerActivarDesactivar txtSegundos.Text = fSegundos cmdPonerSegundos.Text = ("&Reiniciar") cmdSalir.Text = ("&Salir") END
Nous avons ajout� juste � la suite du commentaire que Gambas a g�n�r� Gambas class file qui est une constante qui retient le nombre de secondes par d�faut du chronom�tre, fSegundosPorDefecto, avec une valeur de 120 secondes (deux minutes), et une variable, fSegundos laquelle va g�rer le d�compte. Nous avons cr�� �galement deux proc�dures : VerValores, qui affiche la valeur du d�compte et VerActivarDesactivar, qui change le texte du bouton Start/Stop.
En ce moment, nous avons d�j� une formulaire qui fonctionne. Il ne fait rien d'utile � part de nous faire comprendre ce que nous avons d�j� fait jusque l�. Cela en vaut d�j� la peine. Sauvegardons les modifications depuis la fen�tre principale du projet Project CountDown, et lan�on l'application avec F5 ou avec le bouton Ex�cuter ou le bouton de la barre de la m�me fen�tre. Voici ce que vous devriez avoir :
Si cela n'appara�t pas ou que vous recevez une erreur, vous devez revoir ce que nous avons fait jusqu'alors. M�me si vous appuyez sur Start, Reset ou Exit et que rien ne se passe. Cela sera notre prochaine t�che : assigner les �v�nements � ces boutons dans la mesure o� lorsque l'utilisateur appuie sur l'un d'eux, cela bouge. Avant d'aller plus loin, jouons un peu avec notre application et d�couvrons tout ce qu'elle contient. Pour la fermer, nous pouvons appuyer sur le X en haut � droite. Je suis sous KDE avec le th�me Suse comme vous pouvez le remarquer dans les formulaires et il est possible que vous puissiez fermer votre fen�tre d'une autre mani�re.
En avant pour les boutons les plus simples : Que se passe-t-il lorsque l'utilisateur appuie sur Exit? Nous devons fermer l'application. Pour saisir le code Basic qui sera ex�cut� quand l'utilisateur appuye sur le bouton, nous allons double-cliquer sur le bouton avec le texte Exit (cmbExit). Nous voyons que Gambas g�re quelques lignes de code et que le curseur est situ� entre elles. C'est ici que le code doit �tre saisi. Cette proc�dure sera ex�cut�e lorsque l'utilisateur clique sur ce bouton. Pour fermer l'application, nous devons ex�cuter Me.Close ainsi le code de cet �v�nement sera :
PUBLIC SUB cmdSalir_Click()
ME.Close
END
La bouton suivant que nous allons contr�ler est le Reset. De la m�me mani�re, nous double-cliquons sur le bouton et dans la fen�tre de code que Gambas nous pr�sente, nous ins�rons :
PUBLIC SUB cmdPonerSegundos_Click()
fSegundos = txtSegundos.Text
VerValores
END
Jusqu'ici, on dirait toujours que rien ne se passe. Notre application doit �tre plus vivante. Nous allons activer l'objet Timer situ� dans le formulaire depuis le d�but. Pour le faire, nous devons param�trer l'intervalle pour recevoir les �v�nements de l'horloge. Soit nous le faisons � partir du code, dans notre �v�nement pr�c�dent Form_Open, soit nous le mettons dans le formulaire. Nous le ferons de cette mani�re. Dans le formulaire, nous cliquons sur l'objet Timer et sa fuille de propri�t�s. Nous changeons la valeur de son Delay de 1000ms � 100 pour recevoir un �v�nement chaque dixi�me de seconde ce qui sera la pr�cision de notre chronom�tre.
Nous n'avons toujours pas de code qui sera ex�cut� chaque fois que l'horloge sonne et la mani�re de l'activer. Pour g�n�rer le code de l'horloge, rien n'est plus simple que, comme toujours, double-cliquer sur le formulaire de l'horloge. Cela nous am�nera � la fen�tre de code � l'endroit ad�quat. Apr�s l'insertion de notre code, il devrait ressembler � ceci :
PUBLIC SUB clkMiReloj_Timer() IF fSegundos < 0.1 THEN tglFuncionando.Value = FALSE tglFuncionando_Click ELSE fSegundos = fSegundos - 0.1 VerValores END IF END
Et finalement, nous activons le chronom�tre � la demande de l'utilisateur via le bouton � bascule qui est celui que nous n'avons pas encore g�r�. Avec un double-clic sur le bouton, nous pouvons ins�rer le code pour cet �v�nement :
PUBLIC SUB tglFuncionando_Click() clkMiReloj.Enabled = tglFuncionando.Value VerActivarDesactivar END
Et maintenant, nous pouvons enfin tester le r�sultat de notre travail.
Une autre des caract�ristique de Gambas est son support de diff�rentes langues. Si vous regarder bien le code, nous remarquerez que les cha�nes sont entour�es de parenth�ses. C'est pour montrer que Gambas va �tre traduit. Le texte des contr�les du formulaire n'ont pas besoin de parenth�ses. Notre projet va devenir quelque chose de tr�s utile et les utilisateurs vont demander � ce que les bo�tes de dialogue apparaissent dans leur langue. Rien de plus simple. Nous allons dans le menu Project / Properties de la fen�tre du projet.
Nous mettons un titre � notre projet et activons l'option Project is translatable qui permettra de traduire les dialogues. Nous avons maintenant une nouvelle option active dans les menus : Project / Translate. Si nous ouvrons le dialogue, nous pouvons voir que la traduction est maintenant tr�s intuitive :
D'abord, nous s�lectionnons la langue cible dans la partie sup�rieure. Lorsque nous voulons traduire une cha�ne, nous la s�lectionnons et remplissons la partie inf�rieure. Une fois toutes les cha�nes traduites, nous pouvons la tester en lan�ant l'application depuis un terminal si nous avons r�gl� la variable LANG avec la langue de la traduction. Si vous voulez voir ce que donne la traduction en anglais, je ferme Gambas et j'ex�cute
$ LANG=en_US; gambas
Pour revenir � la situation pr�c�dente, je lance Gambas et je le lance depuis le menu KDE juste parce que la variable d'environnement n'est pas d�finie. Elle n'est active que dans sa console.
M�me si c'est un langage interpr�t� et que nous avons besoin que tout Gambas soit install�, c'est une bonne option de se lancer dans le d�veloppement d'applications pour le bureau Linux. Comme nous l'avons vu, c'est tr�s simple et le d�veloppement se fait tr�s rapidement. C'est suffisant pour la plupart des aplications quotidiennes..
L'aide � l'�cran est assez compl�te avec les exemples disponibles dans le menu File/Open example. Nous pouvons nous rendre �galement sur la page d'accueil du projet. Dans la section liens, il y a pas mal de projets en Basic qui peuvent �tre int�ressant. Ce n'est que le commencement d'un projet pour lequel je pr�vois un futur prometteur.